struts2 action无法获得jsp页面中的参数

UserRoot.java
public class UserRoot extends ActionSupport{
protected String username;
protected String password;
protected String re_password;
protected String address;
protected UserService userService;
//省略setter和getter方法
}

Login.java
public class Login extends UserRoot{
public String execute()throws Exception{
HttpSession session = ServletActionContext.getRequest().getSession();
//用下面的方法通过request可以获得username,但是不用的话username为空
//HttpServletRequest req = ServletActionContext.getRequest();
//String test = req.getParameter("username");
System.out.println(username);
if(userService==null){
System.out.println("UserService is null...............");
}
User user = userService.login(username, password);
if(user!=null){
session.setAttribute("username", username);
return SUCCESS;
}else{
addActionError("用户名或密码错误");
return ERROR;
}
}
}

struts2.xml
<package name="ssh" extends="struts-default" namespace="">
<action name="login" class="login">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>

applicationContext.xml
<bean name="login" class="com.ssh.action.Login">
<property name="userService" ref="userService"/>
</bean>
原来这样做是可以的,但是后来加了一个Spring aop来做日志,然后就不能获得username的值了,非得通过request才行,请教各位大神,这是怎么回事啊??

applicationContext.xml
<bean name="login" class="com.ssh.action.Login">
<property name="userService" ref="userService"/>
</bean>
配置有问题:改成
<bean name="userroot" class="com.ssh.action. UserRoot">
</bean>
<bean name="login" class="com.ssh.action.Login" parent="UserRoot">
<property name="userService" ref="userService"/>
</bean>

也就是说少了parent属性 因为你是继承的UserRoot类
加上继承就Ok了
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-13
为什么要用aop来做日志,struts2的过滤器功能就很好用咯,
你的execute最好别抛异常,有时会出错的,用trycatch处理
第2个回答  2011-02-14
不用request的各方面
protected String username;
这个要生成set和get
第3个回答  2011-02-23
applicationContext.xml
<bean name="userroot" class="com.ssh.action. UserRoot">
</bean>
<bean name="login" class="com.ssh.action.Login" parent="UserRoot">
<property name="userService" ref="userService"/>
</bean>
正解!!还有就是把 protected 换成private吧
第4个回答  2011-02-19
你action里不是有个属性username吗 ,你看看这个有值不,你页面传值的时候估计传到这里了,你request那里就取不到了,
第5个回答  2011-02-13
struts的拦截器不能替换AOP么?

struts2 为什么 jsp设置的request.setAttribute("fox","fox");取不...
action中获取不到 是因为你在struct2的action中获取的request对象并不是jsp传递过来的那个对象.这里和struts1不同, struts1 execute对象将httpRequest 作为参数给予你了.而你在struts2中需要自己去获取这个对象的. 你获取的并不是同一个对象.所以造成了这种情况.

Struts2 2.5 用ognl表达式从action里面取值,显示在jsp页面,为什么不能...
UserAction.java 这个类查出了一个“lists”,也就是我在jsp页面中要取的值。[java] view plain copy package tm.change.action;import java.util.ArrayList;import java.util.List;import tm.change.dao.UserDao;import tm.change.dao.impl.UserDaoImpl;import tm.change.domain.User;public class...

200分悬赏:用struts2在action里面获取不到前台select控件的值
第一:你可以把streetId定义为Action成员变量即 public class Action extends ActionSupport{ private String streetId;public String getStreetId(){ return streetId;} public void setStreetId(String streetId){ this.streetId=streetId;} } 第二种 你通过获取request对象 再通过getParameter("streetId...

struts2List遍历问题,我在action中,保存list,有数据 但是在页面上 取不...
保证你这个messagetime这个list是通过request对象setAtterbite过的,而且这个list存放的对象里有groupmessage这个属性,然后在页面上 {requestScope.item.groupmessage } 这里是${item.groupmessage } ...基本应该是这样的...第一次用框架吧?只要你action中定义一个id的属性然后给它设置了getter和setter后s...

急!!struts2中,JSP无法获得action对象属性的值,是什么原因?
这代码写的,无语 action要new的么?将name、password、userno封装成user对象,user对象设为loginaction的全局对象 添加get、set方法,在jsp中name、password、userno全用user.name,user.userno的形式 将与数据库交互的代码封装在dao层

...前辈:1.在struts2中,在jsp页面是如何获取Action中值的?需要去理解...
会重新生成一个action对象--》调用set方法给这个属性赋值,在jsp上展示用的是get方法,例如你有一个属性name需要展示,set、get方法写好后,在你请求的action中给name赋值,页面就能拿到。struts是用session存储对象的。页面上可以用EL表达式 ${name} java 代码 session。getparameter这样的方式都可以。

struts2的问题始终调不到Action,在线等帮忙看一下;
1、你的web.xml的Struts拦截配置改为\/ 2、你的action里面的方法错了,亲,返回值你还写成list的类型,大神,返回值为String类型,你的。你的action继承ActionSupport了没,你把return的返回值改为SUCCESS或者ERROR或者INPUT

struts2中如何在jsp页面中用js取得action中传过来的值?是用js得到...
js里可以直接写 var num="";actionNum就是action传过来的变量名

struts2 后台获取前台传入的值获取不到,请帮忙看看哪里错了?_百度知 ...
你写的action里有问题啊 np.setProgramId(np.getProgramId());np.setProgramName(np.getProgramName());np.setProject1(np.getProject1());np.setProject2(np.getProject2());这怎么能获取到传的值啊。把它改成 np.setProgramId(this.getProgramId());np.setProgramName(this.getProgramName...

strus2 的action类中定义同名变量,为啥能自动获取jsp的参数
struts2框架就是对servlet进行了一些封装,我们在servlet中获取页面参数的时候是调request.getParameter(“XXX”)来获取参数值,其实struts2也是这样的,只是struts2对你隐藏了这一步,你看不到而已。你在web.xml中可以看到我们配置了struts2的filter,在你访问一个页面的时候(比如manage\/userAdd.action)...

相似回答
大家正在搜