Unmi的Struts2学习笔记(十)2011-09-04 Unmi.cc 隔叶黄莺有一日,帮外公翻腾出他箱底的照片进行数字化留存,已是耄耋之年的外公端 详起那些记忆来,看到都是一同革命的热情小伙,不时感慨:唉!好多人都不在 啦!1. <s:action .../> 可以用来在 JSP 页面直接调用 Action,用 name 指定 Action,executeResult(默认为 false) 指定是否包含那个 Action 转向视 图的内容;executeResult 会把视图的所有内容输出在标签位置。 ignoreContextParams(默认为 false),是否将本页的请求参数传到那个 Action 。2. <s:bean .../> 用来实例化 JavaBean,标签内使用 <s:param name="" value=""/> 来指定属性。在标签内,bean 实例位于 ValueStack 顶 端,标签结束则自动清除。如果指定的 id 属性,还会把该实例放到 Stack Context 中。name 属性必须,指定 Bean 类的全限名称。不知道复杂的属性该如 何用 <s:param .../> 或其他方式来指定。3. <s:date .../> 用来格式化输出日期,还可计算指定日期与当前的 时差。name 是必须的,指定要输出的 Date 类型实例,format 指定格式。如果 指定了 nice(默认为false) 属性为 true,则输出指定日期与当前的时差(样式: 92 days, 9 hours ago),即使指定了 format 属性也如此。输出日期时若未指定 format 属性,则找资源文件中的 struts.date.format,不存在这个 key 就按 DateFormmat.MEDIUM 格式输出了,Struts1 也是采用一样的方式。<% pageContext.setAttribute("now",new Date(107,12,23,13,23,24)); %><s:date name="#attr.now" format="yyyy年MM月dd日" nice="false"/>再试试 <s:date name="#attr.now" format="yyyy年MM月dd日" nice="true"/> 的输出。4. <s:include .../> 用来包含一个资源,JSP 或 Servlet 等,用 value 属性指定。标签内用 <s:param .../> 指定要向被包含资源传递的 参数。
<s:include value="include-file.jsp">
<s:param name="name" value="Unmi"/>
</s:include>
对照<jsp:include page="include-file.jsp?name=Unmi"/> 和 <bean:include id="" page=""/>。想见一下,它们大概都是用 RequestDispatcher.include(request,response) 实现的?5. <s:param .../> 是服务于外层标签来指定参数的,如 bean、 include、url 等。<s:url .../> 用来生成一个 URL 地址,value 或 action 属性来指定 url 地址值,用了 action 会在属性后自动补上 .action, 并可用 method 来指定 Action 的方法。value 和 action 都未指定就相当于 "#" 了。includeParams 说明是否把当前页面的参数也包含到这个 url 上。用例 子说明: