首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2学习小结之基础篇2

2012-11-14 
Struts2学习总结之基础篇2Struts2对json有非常好的支持。为了支持json,我们只需要如下三步:1. 导入struts2-

Struts2学习总结之基础篇2

Struts2对json有非常好的支持。为了支持json,我们只需要如下三步:
1. 导入struts2-json-plugin-{STRUTS_VERSION}.jar
2. 让package继承json-default
3. 将action返回的result的type设置为json

HelloAction.java
public class HelloAction {
? private String message;
? public String getMessage() {
??? return message;
? }
? public void setMessage(String message) {
??? this.message = message;
? }
? public String execute(){
??? return "success";
? }

配置struts.xml如下:
<package name="demo" namespace="/" extends="json-default">
<action name="hello" extends="struts-default">?
??????????? <action name="showPerson" extends="struts-default">
?? <interceptors>
?????? <interceptor name="timer" type="redirect-action">/secure/home</result>
?? </action>
</package>

Struts2解决重复提交的方式非常简单,分为两步:
1. 在需要防止出现重复提交的表单中增加如下标签:<s:token/>
eg:
<s:form action="double" namespace="/demo">
<s:token></s:token>
<s:textfield label=“some value" name=“value"></s:textfield>
</s:form>
2. 在处理表单提交的action中增加如下拦截器的引用: <interceptor-ref name="token"></interceptor-ref>
另外我们还需要指定出现重复提交错误时,返回什么结果给用户,如:
<result name="invalid.token">/doublepost.jsp</result>
一个完整的配置如下:
<action name="double" class="action.DoublePost">
<interceptor-ref name="defaultStack"></interceptor-ref>
<interceptor-ref name="token"></interceptor-ref>
<result name="invalid.token">/doublepost.jsp</result>
<result>/login.jsp</result>
</action>

校验:
<validators>
? <field name="bar">
????? <field-validator type="required">
????????? <message>You must enter a value for bar.</message>
????? </field-validator>
????? <field-validator type="int">
????????? <param name="min">6</param>
????????? <param name="max">10</param>
????????? <message>bar must be between ${min} and ${max}, curren
value is ${bar}.</message>
????? </field-validator>
? </field>
? <field name="bar2">
????? <field-validator type="regex">
????????? <param name="regex">[0-9],[0-9]</param>
????????? <message>The value of bar2 must be in the format "x, y",
where x and y are between 0 and 9</message>
???? </field-validator>
? </field>
<field name="date">
????? <field-validator type="date">
????????? <param name="min">12/22/2002</param>
????????? <param name="max">12/25/2002</param>
????????? <message>The date must be between 12-22-2002 and 12-25-
2002.</message>
????? </field-validator>
? </field>
? <field name="foo">
????? <field-validator type="int">
????????? <param name="min">0</param>
????????? <param name="max">100</param>
????????? <message key="foo.range">Could not find foo.range!</message>
????? </field-validator>
? </field>
? <validator type="expression">
????? <param name="expression">foo lt bar </param>
????? <message>Foo must be greater than Bar. Foo = ${foo}, Bar =
${bar}.</message>
? </validator>
</validators>

热点排行