在struts action 写有get/set方法
在jsp页面
 <input name="username" value="#username">
假如我在struts.xml
<result name="sucess">show.jsp</result>
<result name="input">show.jsp</result>在action 中 
return input时,我想保存页面信息
return success ,我不想保存页面信息。这种问题,一般如何实现呢?

解决方案 »

  1.   

    逻辑 加一个request.setAttribute("flag", "")来判断是否保存
      

  2.   


    问题是struts保存数据,
    是在调用action时之前就调用set方法,给属性赋值,好像是底层实现的!action中不好操作吧
      

  3.   

    你在jsp页面提交的时候jsp页面与action相对应的值就已经存在action中了,你想要不同的返回结果处理不同的操作,最好是在action中用两个方法来分别处理,比如一个方法处理input一个方法处理success,这样你想要的保存和不保存都可以在这两个方法中各自处理,
    不知道是否正确理解了楼主的意思。
      

  4.   


    show.jsp<s:textfield id="username" name="username" value="%{username}" cssStyle="width:180"></s:textfield>
    localupload.actionprivate String username
    get/set methodpublic void validate(){
      // struts2 在验证失败,会自动return input
    }配置struts.xml
    <action name="localupload" class="com.actions.LocalUpLoadAction">
    <result name="success">show.jsp</result>
    <result name="input">show.jsp</result>
    </action>
    当页面调用出错的时候(比如名字不合法),我想保存用户所填的信息,让用户可以看到
    当页面正确提交,还是返回同一个页面,但是数据要清空struts2,因为ognl可以保存数据,但是不管出错,还是正确提交都会保存!谢谢关注!
      

  5.   

    楼主的意思是不想把数据传到action里面?那你页面不提交就是了
      

  6.   


    不管数据正确与否都要传到action里面, 
    数据不合法和数据录入成功都想跳转到同一页面,但数据不合法时,保存原来信息,好让用户知道哪里错了.
    如果数据录入成功,也跳这页面,相当于继续录入,但数据要清空
      

  7.   

    submit时执行如下代码:
    $.getJSON(
    "***.action", 
    {id:id,time:传参2 }, 
      function(success){
           if(success){
       //清空信息
       }else{
       //提示信息
    });
      

  8.   

    input 的时候,把你不需要的东西置为null。。应该能解决,但比较笨。
      

  9.   


    只能这样做了,全部的验证放到js里面,成功后提交到action,
    谢谢大家,结贴