<struts> <constant name="struts.118n.encoding" value="UTF-8"></constant> <constant name="struts.action.extension" value="do"></constant> <constant name="struts.serve.static.browserCache" value="false"></constant> <constant name="struts.devMode" value="false"></constant> <constant name="struts.ui.theme" value="simple"></constant>
1、正常跳转
<pre name="code" class="html"><package name="demo" namespace="/demo" extends="struts-default"> <action name="action_*" class="cn.actions.DemoAction" method="{1}"> <result name="hello">/WEB-INF/pages/message.jsp</result> </action> </package>
public class DemoAction { private String message; public String toHello() { this.message = "hello world!"; return "hello"; } public String getMessage() { return message; } }
2、默认值跳转
<action name="addUser"> <result>/WEB-INF/pages/addUser.jsp</result> </action>
访问地址:http://localhost:9000/demo/addUser.do
3、重定向跳转
<pre name="code" class="html"> <!-- 重定向连接 --> <action name="redirect"> <result type="redirect">/addPerson.jsp</result> </action>访问地址:http://localhost:9000/demo/redirect.do
4、带参的重定向跳转
<!-- 重定向连接 带参数--> <action name="addPeron" class="cn.actions.PersonAction" method="edit"> <result type="redirect">/addPerson.jsp?username=${username}</result> </action>
public class PersonAction { private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String edit() throws UnsupportedEncodingException{ this.username=URLEncoder.encode("汤姆","UTF-8"); return "success"; } }
<body> <h2>用户名:<%= URLDecoder.decode(new String(request.getParameter("username").getBytes("ISO8859-1"),"UTF-8")) %></h2> </body>
5、重定向Action
<!-- 重定向Action --> <action name="redirectAction"> <result type="redirectAction">addPeron</result> </action>
<action name="addPeron" class="cn.actions.PersonAction" method="edit"> <result type="redirect">/addPerson.jsp?username=${username}</result> </action>
6、重定向其他包的Action
<package name="demo" namespace="/demo" extends="struts-default"> <!-- 重定向其他包的Action --> <action name="redirectOtherAction" > <result type="redirectAction"> <param name="actionName">hello</param> <param name="namespace">/other</param> </result> </action> </package> <package name="other" namespace="/other" extends="base"> <action name="hello"> <result>/WEB-INF/pages/hello.jsp</result> </action> </package>访问地址:http://localhost:9000/demo/redirectOtherAction.do
7、显示源代码(不执行代码)
<!-- 显示源代码Action(UTF-8编码) --> <action name="plainText"> <result type="plainText"> <param name="location">/index.jsp</param> <param name="charSet">UTF-8</param> </result> </action>
访问地址:http://localhost:9000/demo/plainText.do
8、包内共享视图
<package name="demo" namespace="/demo" extends="struts-default"> <!-- 包内共用视图 --> <global-results> <result name="message">/WEB-INF/pages/message.jsp</result> </global-results> <action name="person_*" class="cn.actions.PersonAction" method="{1}"> </action> </package>
public class PersonAction { public String save(){ return "message"; } }
访问地址:http://localhost:9000/demo/person_save.do
9、包外共享视图
Ohter 包继承了 base包 所以可以共享Base包的共享视图
<package name="base" extends="struts-default"> <!-- 包内外共享视图 --> <global-results> <result name="message">/WEB-INF/pages/message.jsp</result> </global-results> </package> <package name="other" namespace="/other" extends="base"> <action name="person_*" class="cn.actions.PersonAction" method="{1}"> </action> </package>
public class PersonAction { public String save(){ return "message"; } }
访问地址:http://localhost:9000/other/person_save.do