@Override
public String execute() throws Exception {
User u=new User();
System.out.println(info.getUsername());
u.setUsername(info.getUsername());
u.setPassword(info.getPassword());

if(userManager.exists(u)){
return "fail";
}
userManager.add(u);
prin(null);
return "success";

}
这里不override,就找不到了,所以response也用不上。

解决方案 »

  1.   

    是action里保存的值如何在jsp页面获取嘛?
      

  2.   

    在Action中通过调用session或者request对象的setAttirbute方法就可以了,然后jsp里去取。
      

  3.   

    struts2。x的都不用了那个response了。
      

  4.   

    struts2如果用OGNL的话,是通过值栈传的!当然也可以存内置对象!
      

  5.   

    struts2 直接可以定义个
    public String uname; 完了生成get set页面中标签name属性定义成uname 就直接传了
      

  6.   

    可以通过最基本的request, session的方法setAttribute()传值。不过strust2.0开始就引入了DI这个概念,可以在action里写需要传的属性,设置getter and setter方法,就可以在jsp里存取。
      

  7.   

    在action中设置一个全局变量 (需要是规范的) 如:前俩个字符尽量别大写、第一个字符若小写、第二个就别大写、然后在 你的action的方法里赋值、 生成setter getter前台直接拿el表达式就可以拿到、
    private String csdn;//setter  getterpublic String execute() throws Exception{
      csdn = "www.csdn.net";
      return SUCCESS;
    }前台:    ${csdn}
      

  8.   

    JSP页面获取Struts2 Action里面处理的值,可以  
    Action里面
    private UserInfo userInfo
    //get、set方法
    这样
    页面<s:property value="userInfo里面的属性值"/>
    这样就封装在form里面了,添加(页面 name=“userInfo.属性”)和取值 都是这样 很方便~
      

  9.   

    OGNL表达式,建议楼主去了解一下。我在这里给你推荐一篇文章,你可以去看下:
    http://struts2.group.iteye.com/group/wiki/1356-how-to-use-ognl-in-struts2
      

  10.   

    配struts.xml action result
      

  11.   

    public ActionForward doLogin(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response
    ) throws Exception {
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out=response.getWriter();
    System.out.println("我要登录");
    UserForm userForm=(UserForm)form;
    Usertb user=new Usertb();
    user.setUserName(userForm.getUserName());
    user.setPassword(userForm.getPassword());
    try {
    if(userservice.validUser(user)){
    out.print("{success:true}");
    }else{
    out.print("{success:false,data:'登录失败,用户名或密码不正确'}");
    }
    } catch (Exception e) {
    out.print("{success:false,data:'系统异常,登录失败'}");
    }
    return null;
    }以前的action是这种,现在我用了struts2.6和spring整合了,想返回{success:true}或者{success:false,data:'登录失败,用户名或密码不正确'},但在现的action里不能用session,用了你们上面所说的方法,还是不行,请求的页面是用ext做的登陆框,后台其它的都能正常运行,就是返回那一瞬间,好象收不到{success:true},最关键的是不跳转js代码如下:
    login : function() {
    if (this.fp.form.isValid()) {
    this.fp.form.submit({
    waitTitle : '请稍候',
    waitMsg : '正在登录......',
    url : 'u',
    success : function(form, action) {
    window.location.href = 'registerSuccess.jsp';
    },
    failure : function(form, action) {
    form.reset();
    Ext.Msg.alert('警告', action.result.data);
    }
    });
    }
    },
      

  12.   

    存放到Session里面,ActionContext.getContext().getSession().put("key",value);再页面用<s:property value="%{#session.key}"/>或其他方法取值存到Action的类字段里面也行,不过要有get方法,而且struts配置文件中的action中的result的type选择默认值用ServletActionContext也行,不过这个不是struts2框架本身的方法很多!!列举不完全,呵呵!
      

  13.   

    页面是
    success : function(form, action) {
    window.location.href = 'registerSuccess.jsp';
    },
    ext读这个 success的,就是读不到。
    action:
    @Component("u")
    @Scope("prototype")
    public class UserAction extends ActionSupport implements ModelDriven<UserRegisterInfo>,StrutsStatics{

    private UserRegisterInfo info = new UserRegisterInfo(); private UserManager userManager;

    private List<User> users;
    private User user;
    private String retojsp;
    private javax.servlet.http.HttpServletResponse response;


    public void setResponse(HttpServletResponse response) {
    this.response = response;
    } public UserManager getUserManager() {
    return userManager;
    }@Resource(name="userManager")
    public void setUserManager(UserManager userManager) {
    this.userManager = userManager;
    }@Override
    public String execute() throws Exception {
    User u=new User();
    System.out.println(info.getUsername());
    u.setUsername(info.getUsername());
    u.setPassword(info.getPassword());



    if(userManager.exists(u)){
    response.getWriter().print("{success:true}");//执行到这里就不走了
    System.out.println("ok?");
    return "success";
    }
    response.getWriter().print("{success:false,data:'登录失败,用户名或密码不正确'}");
    System.out.println("用户不存在?");
    return "fail";

    }..............
      

  14.   

    ActionContext.getContext()相当于得到有个request 得到REQUEST在.getSession就有得到session 当然你也可以实现二个接口来得到request 和reqsonse 实现servletRequestAwer,servletResponseAwer 添加后你就会要实现二个方法方法里面要传参数 跟那要传参数的在action添加有个set方法 这个实现的方法里面写上你this.参数=你传递过来的参数  然后在action 添加一个  
      

  15.   

    我的是spring 管理的,我有点菜。
    action不@override,action就不执行了。response拿出来了用不了,根据打印语句显示 一般到response.getWriter().print("{success:true}");这句就不执行了,后台也不报错。我的是ext+ssh只加了一些json的包与commons包,不知道还要加其它什么或者还要配什么...........大神们,你们显神通吧。
      

  16.   

    给action定义一个成员变量,如:User u, 在jsp中用ognl表达式就可以从值栈获取,像这样:u.属性名
      

  17.   

    看来你们还是没有看明白我的问题,还是我表达有点问题,我的情况是,jsp 页面上用的是extjs,
    用ext做的表单:
    login : function() {
    if (this.fp.form.isValid()) {
    this.fp.form.submit({
    waitTitle : '请稍候',
    waitMsg : '正在登录......',
    url : 'u',
    success : function(form, action) {
    window.location.href = 'registerSuccess.jsp';
    },
    failure : function(form, action) {
    form.reset();
    Ext.Msg.alert('警告', 'action.result.data');

    }
    });
    }
    }当后台执行完了。这个
    success : function(form, action) {
    window.location.href = 'registerSuccess.jsp';
    }
    执行不了。