日期:2014-05-20 浏览次数:20821 次
<% 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定义不拦截的方法 -->