学习随心记
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) %>
-_-宅_