最近刚学STUTS,问点问题哈。
1,在struts中的action中如果要转到一个页面同时想把一些信息现实在这个页面应该怎么把信息传给页面。例如在actionform中的validate方法最后返回的一个错误会自动传递给JSP页面现实,如果在action中生成一个错误怎么传过去呢。2,如果直接在浏览器输入系统中的某个JSP地址,那怎么让这个输入先传给一个action处理才现实出来。譬如说输入的JSP地址需要某些权限才可以查看,那是不是判断的逻辑要放在JSP里面才能当用户在地址栏直接输入JSP地址后可以判断用户权限。3,在stuts中怎么在一个页面中切换现实多个页面,例如现实第一页,可以有些输入框,然后可以换第二页,也有输入框,可以切换显示。最后点一个提交才全部提交上去,表达的不是很好。貌似看到有标签是用来这么做。麻烦说仔细点,谢谢了哈。

解决方案 »

  1.   

    1 .action中的错误是由ActionErrors来处理。
    ActionErrors errors = new ActionErrors();
    errors.add("","");
    saveErrors(request, errors);
    页面上就可以通过struts的标签得到这个错误信息。2.可以用filter,具体网上搜。3.用html中的层实现,显示哪一页完全用javascript控制。
      

  2.   

    谢谢一楼的兄弟,偶邮箱是[email protected]
      

  3.   

    1 .action中的错误是由ActionErrors来处理。
    ActionErrors errors = new ActionErrors();
    errors.add("","");
    saveErrors(request, errors);
    页面上就可以通过struts的标签得到这个错误信息。2.可以用filter,具体网上搜。3.用html中的层实现,显示哪一页完全用javascript控制。
    ------------------------------
    呵呵,谢谢了,第一个问题偶大概知道,试试去。。
      

  4.   

    1、saveErrors,但是好像1.2以后已经没有ActionError了,改为ActionMessage,所以这个方法可能有其他的变种
    2、提交到.do
    3、这个怎么实现与标签无关
      

  5.   

    1、saveErrors,但是好像1.2以后已经没有ActionError了,改为ActionMessage,所以这个方法可能有其他的变种
    2、提交到.do
    3、这个怎么实现与标签无关
    第二点偶说的是在浏览器直接输入JSP地址的,没提交到.do的。filter还不了解这东西。惭愧。
    第三是因为我曾经在一个项目里面看到他们用那个来现实,好像说是stuts标签库app里面的
      

  6.   

    回ls
    1、那就<logic:forward>
    2、app可能是自定义标签也可能是jstl
      

  7.   

    2,在jsp的最前面做个包含文件,request.getServletPath()获取url,如果是jsp那就是直接的,否则struts应该还.do.检查某人是否对xxxx.do有权限,这就看你的权限的设计了3,实现的方法多了,可以两个页面,连过来然后连过去,可以javascript做两个div,显示一个隐藏一个,等扥
      

  8.   

    誰有struts2.0的學習資料﹗﹗給我點啊﹗﹗
    網上很少﹗只看過Max寫的﹗﹗﹗
    (要中文滴﹗﹗)謝謝﹗﹗
    eamil :[email protected]
    (初學struts2.0)幫幫忙﹗﹗
    頂一下﹗﹗
      

  9.   

    ActionErrors errors = new ActionErrors();
    errors.add("username", new ActionMessage("hello.dont.talk.to.monster"));
    saveErrors(request, errors);
    第一题 给你发教程了 能找到答案的
      

  10.   

    第二题你所说的可以解决的 这个地址需要 传入参数 或者 SESSION 才能够显示内容 如果没有就报错
      

  11.   

    1.ActionErrors
    2.过滤器, 在web.xml配成/* , 那么该应用的任何访问都会先执行过滤器,
    可以把权限存入session中, 在过滤器中分析session的权限,再看是否放行
    3.有这种控件的,页面切换时可以把通过js传递或将信息保存在本地cookie中
      

  12.   

    1,使用html:error标签也可以实现。既然是struts,就不要还去用ActionError了。
    自己定义自己的错误码,显示信息多好啊。
    配置exception-config.xml文件2,没必要传入参数,在jsp中使用html:rewrite重定向到一个新的Action,所有你想要的都在Action中处理就好了!3,使用div+style.display是一个办法。另外可以把信息暂时保存在Session中,最后一起在Action中处理Session的值完成提交,如果取消则清除Session中的值即可。
      

  13.   

    第二题不是如何直接进入ACTION 是怎么控制权限显示页面
      

  14.   

    html:error标签能在ACTION中发现错误(程序不写代码)ActionErrors不是struts里面东西吗?????极度差异 怎么学的struts
      

  15.   

    2,Action中想控制权限易如反掌,所有的逻辑都可以在里面作,何况权限控制。
    简单说明如下:根据用户登录的ID或者其他的信息在Session中保存用户的level
    ,然后在页面中使用logic:标签根据不同的Level显示不同的内容或者根本就不显示。
      

  16.   

    filter你可以查下javax.servlet.filter接口继承它的方法。
    在web.xml
    <filter>
    <filter-name>*******</filter-name>
    <filter-class>**.**.*******</filter-class>
    </filter>
    里面还可以定义变量<init-param>
      

  17.   

    3,ActionError简单还是标签简单?就像系统提供了strcpy函数,你还去一个一个字符算指针一样,多此一举嘛。
    另外:技术讨论不得进行人身攻击。此类帖子一概不理。
      

  18.   

    To:xizhiyao(流浪的猴子) 
    请仔细看清LZ的题目,OK?
      2,如果直接在浏览器输入系统中的某个JSP地址,那怎么让这个输入先传给一个action处理才现实出来。技术讨论不要暴露个人的脾气。
      

  19.   

    LS上的您强
    譬如说输入的JSP地址需要某些权限才可以查看,那是不是判断的逻辑要放在JSP里面才能当用户在地址栏直接输入JSP地址后可以判断用户权限。看完没
    请问happylion2008(枫叶飘飘)您一定是美工只负责VIEW吧。
      

  20.   

    还有一事不名请问exception-config.xml是什么?是不是我太长时间不关注新技术有产生新的配置文件了 就算使用 <html:errors/>在action里面捕获异常 好象是配置成为〈global-exceptions>里面也要在资源文件里面设置KEY 也有可能写自己的例外类。。
      

  21.   

    To:xizhiyao(流浪的猴子) 
    请搞清楚 譬如 的含义。建议翻阅新华大字典。
    LZ说
    那怎么让这个输入先传给一个action处理才现实出来。
    譬如说输入的JSP地址需要某些权限才可以查看
    不是说
    怎么让 说输入的JSP地址需要某些权限才可以查看。
    譬如让这个输入先传给一个action处理才现实出来请仔细分析语文。
    不要把技术搞得贼牛,E文搞得倍儿好。中文却看不懂了。
     
    另外:
    能在View里面的逻辑决不放在Action里面。
    请仔细理解Struts框架以及标签库的初衷。
    做学问不要一知半解,然后嘲笑别人。其次:
    不要对美工进行人身攻击。
    在下不才,还没有美工那么好的水平。
    在下只是一个程序员而已。再次强调:
    讨论技术问题不要携带人身攻击!
      

  22.   

    To:xizhiyao(流浪的猴子) 
    exception-config.xml不是新技术,不要标榜自己好多年前就搞技术了。
    摆出技术大牛的姿态。相信你有技术大牛的水平。
    做学问一定要扎进去。这个世界有很多是你未知的,但不都是新的。
    OK?
      

  23.   

    To:xizhiyao(流浪的猴子) 
    关于 譬如 给你举个例子吧。
    有人请教说 叫我怎么做饭吧, 譬如 炒鸡蛋。
    你告诉他 如何炒鸡蛋。
    我告诉他 如何做饭 ,只要会做饭,炒鸡蛋只是基本功而已。
    那你跟我计较我告诉他 如何做饭 不对?中华文化,源远流长。
    我们需要学习的还多着呢。
    呵呵。
      

  24.   

    1,使用html:error标签也可以实现。既然是struts,就不要还去用ActionError了。
    自己定义自己的错误码,显示信息多好啊。
    配置exception-config.xml文件2,没必要传入参数,在jsp中使用html:rewrite重定向到一个新的Action,所有你想要的都在Action中处理就好了!3,使用div+style.display是一个办法。另外可以把信息暂时保存在Session中,最后一起在Action中处理Session的值完成提交,如果取消则清除Session中的值即可。
    首先感谢下,不过还是想问问。
    1,我就是想由action控制jsp中显示信息,因为事菜鸟,不大懂,不知道怎么在action中控制jsp显示信息或者不显示或者显示不同的信息。
    2,重定向到一个action,可是最后显示的话action还是要指定一个jsp文件的,那么要是直接在地址栏输入那个jsp文件不就是没达到我们的目的吗?我的意思是总是会有jsp文件是用来显示,可是如果还要重定向那不是没完没了吗?
    3,这个是说在一个页面里面保存的,没刷新的,就是切换显示不同页,用不了session啊。
    呵呵。。我比较菜。。不好意思。。
      

  25.   

    2,Action中想控制权限易如反掌,所有的逻辑都可以在里面作,何况权限控制。
    简单说明如下:根据用户登录的ID或者其他的信息在Session中保存用户的level
    ,然后在页面中使用logic:标签根据不同的Level显示不同的内容或者根本就不显示。学习到了。。呵呵。。谢谢。。
      

  26.   

    filter你可以查下javax.servlet.filter接口继承它的方法。
    在web.xml
    <filter>
    <filter-name>*******</filter-name>
    <filter-class>**.**.*******</filter-class>
    </filter>
    里面还可以定义变量<init-param>
    呵呵。。就是对过滤器的原理和使用啊什么的偶不了解。。还是感谢了。。不知道有没有专门介绍学习这个的资料或者网页呢?
      

  27.   

    happylion2008(枫叶飘飘)您弄的我无言了。。
      

  28.   

    To:LZ
    说说我的思路。
    1,在Action中控制JSP页面的显示。
      我一般的做法是在Action中设置Session变量。foward到jsp。
      在jsp中使用logic标签,例如match,equal, greaterThan等。判断该变量,然后显示不同的信息。我习惯于用Logic标签,这样页面可能显得比较臃肿,呵呵。2,直接输入jsp确实没有办法。除非在jsp中嵌入java代码进行业务处理。
    但是如果是给用户的话,就不用考虑这些了。你的所有页面的进入都应该是通过Action forward到的,包括link,也不要直接href="*.jsp"这种做法。
    这样用户在地址栏看到的始终是*.do?operation=*的格式,自然不会去找到你的jsp页面的。3,一个页面不刷新的含义指的是什么?
    可以使用div显示不同的页面,把相关信息以hidden元素保存,在js中可以做读取判断等处理。
    第二点,既然页面内容要发生变化,例如点击Button,Link等,此时就可以进入Action了,只不过Forward回来还是原来的页面而已。
    如果是通过radio,checkbox,select等的选中来改变,通过div以及style的display=none/inline是最简单的。另外,也可以走Action的路子,例如设置该y元素的事件onselect,onchange,onclick等在js中设置form的action,再执行form的submit一样可以达到提交到Action的效果。LZ可以参考。博览众家之长。呵呵。
      

  29.   

    1 .action中的错误是由ActionErrors来处理。
    ActionErrors errors = new ActionErrors();
    errors.add(ActionErrors.GOLABLE_ERRORS,"");
    saveErrors(request, errors);
    页面上就可以通过struts的标签得到这个错误信息。2.可以用filter,具体网上搜。3.用html中的层实现,显示哪一页完全用javascript控制。
      

  30.   

    1 .action中的错误是由ActionErrors来处理。
    ActionErrors errors = new ActionErrors();
    ---------------------------------------------
    errors.add(ActionErrors.GOLABLE_ERRORS,"");**
    --------------------------------------------
    saveErrors(request, errors);
    页面上就可以通过struts的标签得到这个错误信息。2.可以用filter,具体网上搜。
      

  31.   

    To:LZ
    说说我的思路。
    1,在Action中控制JSP页面的显示。
      我一般的做法是在Action中设置Session变量。foward到jsp。
      在jsp中使用logic标签,例如match,equal, greaterThan等。判断该变量,然后显示不同的信息。我习惯于用Logic标签,这样页面可能显得比较臃肿,呵呵。2,直接输入jsp确实没有办法。除非在jsp中嵌入java代码进行业务处理。
    但是如果是给用户的话,就不用考虑这些了。你的所有页面的进入都应该是通过Action forward到的,包括link,也不要直接href="*.jsp"这种做法。
    这样用户在地址栏看到的始终是*.do?operation=*的格式,自然不会去找到你的jsp页面的。3,一个页面不刷新的含义指的是什么?
    可以使用div显示不同的页面,把相关信息以hidden元素保存,在js中可以做读取判断等处理。
    第二点,既然页面内容要发生变化,例如点击Button,Link等,此时就可以进入Action了,只不过Forward回来还是原来的页面而已。
    如果是通过radio,checkbox,select等的选中来改变,通过div以及style的display=none/inline是最简单的。另外,也可以走Action的路子,例如设置该y元素的事件onselect,onchange,onclick等在js中设置form的action,再执行form的submit一样可以达到提交到Action的效果。LZ可以参考。博览众家之长。呵呵。
    呵呵。。谢谢这位仁兄。。学习到不少,因为才刚学习struts。。问题比较菜了不好意思。
      

  32.   

    Struts 很简单...JDK 常看看``
      

  33.   

    我看了搂主的问题和一些高手的回答,我感觉搂主表达的意思和各位高手理解的意思有出入
    搂主是不是想问这些??1。页面验证是写在validate方法中,但业务逻辑验证写在那里??(比如新规一条记录时候,看看数据库中这条记录是否存在)2。画面跳转初始化的问题,比如页面有个下拉菜单,直接走xxx.jsp,这个菜单的检索那里写,这个问题高手回答的很清楚了,先走xxx.do这样会先走action,再显示画面,这样下拉菜单就被填充了3。第3个问题是单提交按钮对多提交页面的问题,比如信息注册比较多,一个页面显示不过来,需要跑到下个页面或者多个页面,最后提交的是好几个页面的注册信息的问题楼下高手继续。。
      

  34.   

    我看了搂主的问题和一些高手的回答,我感觉搂主表达的意思和各位高手理解的意思有出入
    搂主是不是想问这些??1。页面验证是写在validate方法中,但业务逻辑验证写在那里??(比如新规一条记录时候,看看数据库中这条记录是否存在)2。画面跳转初始化的问题,比如页面有个下拉菜单,直接走xxx.jsp,这个菜单的检索那里写,这个问题高手回答的很清楚了,先走xxx.do这样会先走action,再显示画面,这样下拉菜单就被填充了3。第3个问题是单提交按钮对多提交页面的问题,比如信息注册比较多,一个页面显示不过来,需要跑到下个页面或者多个页面,最后提交的是好几个页面的注册信息的问题楼下高手继续。。呵呵。。第一问题说的也算对吧。。我就是想问有些必须在action中处理的逻辑怎么反应在jsp上。不过应该知道了大概。。
    第二个问题,我是想说我们做的jsp和action,要是某人知道了jsp页面地址,直接在地址栏中输入,那就绕过了action了,怎么防止这个没有权限的用户在地址栏输入jsp页面地址后进入这个页面呢
    第三个问题是信息太多,一个页面显示不来,希望能几个页面切换显示,全部填写完毕才才一个按钮按了再提交。。
    呵呵。。
      

  35.   

    回第2个问题,我做过的一个项目,在用户登陆界面时候,就会根据每个用户的级别不同拥有不同的权限,在jsp中作了个自定义的权限标签,将画面的敏感部分用这个标签包起来,别说非正常登陆的人了,连级别不够的人都看不到不该看到的东西