常用标签的应用的总结:
在用struts2的标签的时候,必须导入标签库<%@ taglib uri=”/struts-tags” prefix=”s”%>
1、 对日期的处理
在strust2的标签库中,对日期处理的标签集成了第三方的插件。用起来很直观
但是在执行的时候必须这么做:
首先,要导入struts2的自己的风格单
<s:head/><!--表示把常用的css风格单和js控件生成到页面-->
然后,写内容:
<s:datetimepicker name="orderinfo.orderdate" theme="simple"/>
Theme:主题,这里采用的是<s:head/>导入struts2的主题,在这里不合适,而要采用自己定义的格式,”simple”:表示简单的格式
2、 对from中action内容的处理
<form action="./oa/orderinfosave.do" method="post">
在配置文件中对应的是(这里我们是把方法写死的):
<action name="orderinfosave" method="save"
class="org.www.actions.OrderinfoAction">
<result name="input">/orderinfonew.jsp</result>
<result name="success" type="chain">orderinfolist</result>
</action>
<action name="orderinfolist" method="list"
class="org.www.actions.OrderinfoAction">
<result name="input">/orderinfonew.jsp</result>
<result name="list">/orderinfo.jsp</result>
</action>
方法1:<s:url id="one" action="orderinfosave" namespace="/oa" method="save"></s:url>
方 法 2: <s:url id="one" action="/oa/orderinfosave"></s:url>
替换:<form action="${one}" method="post">
即使把方法不写死,也是可以一样的用,但是感觉这个没多大的用处
3、struts中的<s:form />方法
<s:form action="" namespace="" method=””/>
action中的提交数据,action=””指的是哪个action,这里不用加后缀名,比如说.do,.action等。namespace=””指的是你配置的xml文件中的那个package,method指的是哪个方法。
4、 防止重复标签<s:token/>
<s:token/>主要是防止重复提交,比如说新增的时候,然后再调用展现方法转到展现页面,而方法之间是dispatcher转向的话,实际上还是调用的新增的方法,当再刷新展现页面的时候,就会再次新增。而struts2提供了一个标签。来防止重复提交。
首先,在jsp页面中要保存<s:token/>标签,它会自动生成一个tokenValue在session中。
在该jsp页面转向的action中,在该action的xml文件中,必须配置token拦截器
<interceptor-ref name="token"></interceptor-ref>
<interceptor-ref name="basicStack"></interceptor-ref>这个是基本拦截器
而在该action配置的转向中,必须配置一个invalid.token转向。
如:<result name="invalid.token" type="redirect">/index.jsp</result>
这里要注意的是。不能动态写方法,那样的话每次都会调用token拦截器,那样就会转到invalid.token对应的页面
5、 单选框<s:radio>标签
<s:radio name="" list="" value="" />
name表示表单提交属性的名称,list表示单选框的所有内容,value表示默认选择的内容的值.比如说:<s:radio theme="simple" name="emp.sex" list="{'男','女'}" value="’男’" />theme:表示风格方式,因为该标签会自动添加行列,这里取消。采用简单风格方式。如果说从action中传递过来取值的可以这样做:
<s:radio theme="simple" name="emp.sex" list="#request.sexs" value="#request.sex" /> list="#request.sexs"从request中去存储的数据。
而list不仅仅可以放set、list容器,而且可以装map容器的值。
比如说:
<s:radio name="xtyh.yhzt" list="#{'1':'启用','2':'停用'}" value="1">
其实,在action中。Struts2会把所有属性默认存储在值堆栈(VlaueStrack)中,而值堆栈有放在request中。所以可以用request来取。value="#request.sex"从request中取默认值。如果是在ValueStack中,就不需要加”#reuqest”等这些东西了
6、 下拉框<s:select>