当前位置: 移动技术网 > IT编程>开发语言>Jsp > Struts2-尚学堂马士兵-学习随心记

Struts2-尚学堂马士兵-学习随心记

2017年12月27日  | 移动技术网IT编程  | 我要评论

学习随心记

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) %>

 

 

 


 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网