1.Action
代码如下 | 复制代码 |
package org.Rudiment.action; import javax.servlet.ServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; public class LoginAction extends ActionSupport } |
2.struts.xml配置文件内容
代码如下 | 复制代码 |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.custom.i18n.resource" value="mess" /> <constant name="struts.i18n.encoding" value="GBK" /> <package name="default" extends="struts-default"> <action name="*Action" class="org.Rudiment.action.LoginAction" method="{1}"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcom.jsp</result> </action> </package> </struts> |
3.前台提交表单举例
当前台表单form的action="Action" 则struts将业务交给execute()执行
当前台表单form的action="test1Action" 则struts将业务交给test1()执行
当前台表单form的action="test2Action" 则struts将业务交给test2()执行
当前台表单form的action="executeAction" 则struts将业务交给execute()执行
========================== 扩展内容 ===========================
1.依旧使用上面的Action,然后将配置文件改成这样
代码如下 | 复制代码 |
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <constant name="struts.custom.i18n.resource" value="mess" /> <constant name="struts.i18n.encoding" value="GBK" /> <package name="default" extends="struts-default"> <action name="*_*" class="org.Rudiment.action.{1}" method="{2}"> <result name="input">/login.jsp</result> <result name="error">/error.jsp</result> <result name="success">/welcom.jsp</result> </action> </package> </struts> |
2.前台提交表单举例
当前台表单form的action="LoginAction_execute" 则struts将业务交给execute()执行
当前台表单form的action="LoginAction_test1" 则struts将业务交给test1()执行
当前台表单form的action="LoginAction_test2" 则struts将业务交给test2()执行
注:当请求的action="LoginAction_test1" 则struts会把请求交给类org.Rudiment.action.LoginAction 的 test1() 方法处理
除此之外表达式{1}不仅能在action中用在result里面也可以用
当我们配置
代码如下 | 复制代码 |
<action name="*"> <result>/*.jsp</result> </action> |
这里action没有指定处理的class则struts默认使用ActionSuppoer这个类总是返回Action.SUCCESS
所以当前台请求action="index" 则strtus会将请求映射到index.jsp页面,即返回给用户的视图是index.jsp
有点需要说明 如果result 里面没有指定name这个属性,那么默认为name=success。