您的位置:首页 > 编程语言 > Java开发

struts.xml中result的学习

2015-12-17 14:39 453 查看

1.result的type类型4种:

dispatcher/redirect/chain/redirectAction ,其中default值为dispatcher

<package name="index" namespace="/yanlu" extends="struts-default">

<action name="yan1" >
<result type="dispatcher">/yan1.jsp</result>
</action>
<action name="yan2" >
<result type="redirect">/yan2.jsp</result>
</action>
<action name="yan3" >
<result type="chain">yan1</result>
</action>
<action name="yan4" >
<result type="redirectAction">yan2</result>
</action>
</package>


例子中,yan1,yan3执行后现实页面都为yan1.jsp

yan2,yan4执行后现实页面都为yan2.jsp

dispatcher,redirect跳转的页面为jsp,html等得前台界面

chain,redirectAction跳转为action跳转

2.global-results和extends

index.jsp

<ol>
<span style="white-space:pre">	</span><li><a href="user/user?type=1">返回success</a></li>
<span style="white-space:pre">	</span><li><a href="user/user?type=2">返回error</a></li>
<span style="white-space:pre">	</span><li><a href="user/user?type=3">返回global result</a></li>
<span style="white-space:pre">	</span><li><a href="admin/admin">admin,继承user包</a></li>
</ol>


UserAction.java

public String execute() throws Exception {
<span style="white-space:pre">		</span>if(type == 1) {return "success";}
<span style="white-space:pre">		</span>else if (type == 2) {return "error";}
<span style="white-space:pre">		</span>else {return "mainpage";}
<span style="white-space:pre">	</span>}


返回对应result的name的值。result的name属性默认值为success

AdminAction.java

public String execute() throws Exception {
return "mainpage";
}


struts.xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">

<global-results>
<result name="mainpage">/main.jsp</result>
</global-results>

<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>/user_success.jsp</result>
<result name="error">/user_error.jsp</result>
</action>
</package>

<package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
<result>/admin.jsp</result>
</action>
</package>
</struts>


例子:个人感觉global-result用处不大,action的excute()返回值为"mainpage",才会调用。不过学习 了,还是记下。

extends默认值:struts-defaults.在当前package的action中找不到对应的result,根据extends去父package中找global-results.

3.动态结果集

UserAction.java

public String execute() throws Exception {
if(type == 1) r="/user_success.jsp";
else if (type == 2) r="/user_error.jsp";
return "success";
}


index.jsp
<ol>
<li><a href="user/user?type=1">返回success</a></li>
<li><a href="user/user?type=2">返回error</a></li>
</ol>


struts.xml
<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">

<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>${r}</result>
</action>
</package>
</struts>
基本用不到,用不到,用不到。。。重要的事情说三遍。

4.参数传递

index.jsp

<ol>
<li><a href="user/user?type=1">传参数</a></li>
</ol>
参数type放在action context的paramters中

struts.xml

<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result type="redirect">/user_success.jsp?t=${type}</result>
</action>
</package>
</struts>


struts.xml取action context中参数用 $

例子: t=${type}

UserAciton.java
public class UserAction extends ActionSupport {
private int type;

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

@Override
public String execute() throws Exception {
return "success";
}

}


注意struts.xml中取参数的方法:${}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: