一:action类讲解
用户编写Action 可以是 POJO
用户编写Action 可以实现Action接口
可以使用结果集常量字符串
用户编写Action 可以继承ActionSupport基类
对请求参数进行校验
设置错误信息
读取国际化信息
execute方法编写注意细节
public 修饰符
String 返回值
无参数
public interface Action { public static final String SUCCESS = "success"; //Action执行成功 public static final String NONE = "none"; //不需要跳转结果页面 public static final String ERROR = "error";<span style="white-space:pre"> </span> //Action执行逻辑错误 public static final String INPUT = "input"; //用户输入非法数据 public static final String LOGIN = "login"; //没有访问权限 public String execute() throws Exception; }
Struts2的Action没有与任何Servlet API耦合,便于测试 1.获得ActionContext实例对象 : getContext() 2.获得请求内容: actionContext.getParameters() 类似调用HttpServletRequest的getParameterMap()方法 3.获得不同域的内容,相当于getAttribute(name)方法 actionContext.get(key) 获得request指定key的属性值 actionContext.getSession().get(key) 获得session指定key的属性值 <span style="white-space:pre"> </span>actionContext.getApplication().get(key) 获得application指定key的属性值 4.设置不同域的内容,相当于setAttribute(name,value)方法 <span style="white-space:pre"> </span>put(String,Object) 设置request指定key的属性值 <span style="white-space:pre"> </span>actionContext.getSession().put(String,Object) 设置session指定key的属性值 <span style="white-space:pre"> </span>actionContext.getApplication().put(String,Object) 设置application指定key的属性值 注意:struts.devMode为true,控制台有可能出项异常或严重提示
ServletContextAware void setServletContext(javax.servlet.ServletContext context) ServletRequestAware void setServletRequest(javax.servlet.http.HttpServletRequest request) ServletResponseAware void setServletResponse(javax.servlet.http.HttpServletResponse response)注意:没有session的aware,session可以通过request获得
static PageContext getPageContext() static HttpServletRequest getRequest() static HttpServletResponse getResponse() static ServletContext getServletContext()该方案可避免Action类实现XxxAware接口,但Action依然与Servlet API直接耦合
一个最简单的创建:
第一步:创建JSP页面
</head> <body> <a href="${pageContext.request.contextPath}<span style="color:#ff0000;">/prepath/helloAction</span>">1.简易跳转</a> </body>
第二步:在Struts.xml中配置Action
<package name="default" namespace="<span style="color:#ff0000;">/prepath</span>" extends="struts-default"> <action name="<span style="color:#ff0000;">helloAction_turnNext</span>"class="cn.green.demo1.helloAction"> <result name="<span style="color:#33ff33;">success</span>"><span style="color:#33ff33;">/a_demo/next.jsp</span></result> </action> <!--使用通配符 <action name="helloAction_<span style="color:#33ff33;">*</span>" class="cn.green.demo1.helloAction"method="<span style="color:#33ff33;">{1}</span>"> <result name="success">/a_demo/next.jsp</result> </action> --> </package>
第三步:编写Action类
public class helloAction extends ActionSupport{ public String execute(){ returnSUCCESS; } }
第四步:编写点击后调用界面
<body> thisis the next page ! </body>
最简单的流程结束!实现页面跳转!