日期:2014-05-20 浏览次数:21033 次
<%
        request.getRequestDispatcher(
            "WEB-INF/login/login.jsp").forward(request,
                response);
%>
------解决方案--------------------
莫非这位仁兄的意思是使用了STRUTS2的标签,但是直接用JSP跳了JSP页面而没有经过ACTION?没有经过ACTION的拦截器处理,是不可以直接用struts的标签得到数据的。
------解决方案--------------------
可能和提交的action路径有关系,路径是必须正确滴,
/////////////////////////////////////////////////////////////////////
  jsp页面
<%@ taglib uri="/struts-tags" prefix="s" %>
。。。。。。。。。。。。。。。。
  <body>
 	<s:actionerror/>
   <s:form  action="login">
   	<s:textfield name="lname" label="登录名"></s:textfield>
   	<s:password name="lpass" label="密码"></s:password>
   	<s:submit></s:submit>
   </s:form>
  
  
 </body>
//////////////////////////////////////////////////////////////////////////////
控制器::
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.qulx.service.LoginService;
public class LoginAction extends ActionSupport {
	
	//属性驱动
	private String lname;
	private String lpass;
	
	public String getLname() {
		return lname;
	}
	public void setLname(String lname) {
		this.lname = lname;
	}
	public String getLpass() {
		return lpass;
	}
	public void setLpass(String lpass) {
		this.lpass = lpass;
	}
	@Override
	public String execute() throws Exception {
		//验证用户是否是合法用户  
		boolean flag = new LoginService()
						.loginValidate(this.lname,this.lpass);
		if(flag){
			//如果用户合法,将用户绑定到会话中
			ActionContext.getContext().getSession().put("loginname", lname);
			return this.SUCCESS;
		}else{
			//添加控制器级别的异常
			this.addActionError("非法用户,请重新登录");
			return this.INPUT;
		}
	}
	/**
	 * 表单验证
	 * 用户名不能为空,密码长度不低于六位
	 */
	@Override
	public void validate() {
		if(null == this.lname || "".equals(this.lname)){
			//添加字段级别的异常
			this.addFieldError("lname", "用户名不能为空");
		}
		if(null == this.lpass || this.lpass.length()<6){
			
			this.addFieldError("lpass", "密码长度不能低于6位");
		}
	}
}
///////////////////////////////////////////////////////////////////////
struts.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
	<struts>
		<package name="0331s2" extends="struts-default">
		
		<!-- 注册拦截器 -->
		<interceptors>
			<!-- 注册登录拦截器 -->
			<interceptor name="loginInterceptor"  
				class="com.qulx.interceptor.LoginInterceptor"></interceptor>
			<!-- 注册方法拦截器 -->
			<interceptor name="methodInterceptor"  
				class="com.qulx.interceptor.MyMethodInterceptor">
				<!--includeMethods定义拦截的方法  -->
				<param name="includeMethods">save,update</param>
				<!--excludeMethods定义不拦截的方法  -->