学习随心记
Struts标签定义taglib
<%@taglib uri=/struts-tags prefix=s%>
Struts.xml中设置开发模式devmode
Struts.xml中设置默认编码encoding
Struts.xml中导入包含其他模块
Action中标记错误
this.addFieldError(error_name,The Name Is Not Equals To qsuron); return ERROR;
Struct.xml中设置默认Default Action
Jsp中取出错误信息
也可以用debug进行查看
result类型
1.dispatcher 服务器端的跳转(URL不变) 2.redirect 客户端的跳转(URL改变,重新请求新的页面) 3.chain 能跳转到action 4.redirectAction 能跳转到action 5.freemaker 一个框架 6.httpheader HTTP头信息 7.stream 上传下载 8.xslt 和XML相关的修饰语言 9.plaintext 返回源码(带<%的,做教程网站的话可能会用到) 10.title 动态更新网页标题
/ActionIntroduction.jsp /r1.jsp /r2.jsp r1 r2
常见问题,当要chain的其他action位于其他的namespace时,代码如下:
dashboard/secure
Action里操作客户端request,session,application-方式1
package com.qsuron.action; import java.util.Map; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction1 extends ActionSupport{ private static final long serialVersionUID = 1L; private Map request; private Map session; private Map application; @SuppressWarnings(unchecked) public LoginAction1(){ request = (Map) ActionContext.getContext().get(request); session = ActionContext.getContext().getSession(); application = ActionContext.getContext().getApplication(); } public String login(){ request.put(r1,request-qsuron); session.put(s1,session-qsuron); application.put(a1,application-qsuron); return SUCCESS; } }
Action里操作客户端request,session,application-方式2-最常用的
package com.qsuron.action; import java.util.Map; import org.apache.struts2.interceptor.ApplicationAware; import org.apache.struts2.interceptor.RequestAware; import org.apache.struts2.interceptor.SessionAware; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; /**最常用 * 体现了DI(dependcy injection)或者说是IoC(inverse of control)设计思想 * 类似于DomainModelParamInput */ public class LoginAction2 extends ActionSupport implements RequestAware,SessionAware,ApplicationAware{ private static final long serialVersionUID = 1L; private Map request; private Map session; private Map application; public String login(){ System.out.println(222); request.put(r1,request-qsuron); session.put(s1,session-qsuron); application.put(a1,application-qsuron); return SUCCESS; } public void setRequest(Map request) { this.request = request; } public void setSession(Map session) { this.session = session; } public void setApplication(Map application) { this.application = application; } }
Action里操作客户端request,session,application-方式3
package com.qsuron.action; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class LoginAction3 extends ActionSupport{ private static final long serialVersionUID = 1L; private HttpServletRequest request; private HttpSession session; private ServletContext application; public LoginAction3(){ request = ServletActionContext.getRequest(); session = request.getSession(); application = session.getServletContext(); } public String login(){ System.out.println(333); request.setAttribute(r1,request-qsuron); session.setAttribute(s1,session-qsuron); application.setAttribute(a1,application-qsuron); return SUCCESS; } }Action里操作客户端request,session,application-方式4
package com.qsuron.action; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts2.interceptor.ServletRequestAware; import com.opensymphony.xwork2.ActionSupport; public class LoginAction4 extends ActionSupport implements ServletRequestAware{ private static final long serialVersionUID = 1L; private HttpServletRequest request; private HttpSession session; private ServletContext application; public String login(){ System.out.println(444); request.setAttribute(r1,request-qsuron); session.setAttribute(s1,session-qsuron); application.setAttribute(a1,application-qsuron); return SUCCESS; } public void setServletRequest(HttpServletRequest request) { this.request = request; this.session = request.getSession(); this.application = session.getServletContext(); } }
客户端使用Struts2或者Jsp语句对action中的request,session,application进行取值
<%=request.getAttribute(r1) %>