在ASP or php中,看到在默认首页就可到数据库去获取数据,比如程序中输入index.php就可得到数据页面。
那么在struts中,是否一定需要事件去触发xx.do这样的后台类?比如默认页面是个html,自动转向到xx.do?在asp or php中,比如动网论坛(asp版),按下链接到xx.asp的链接,那么浏览器url也会跟着显示xx.asp,接着用户按F5刷新,并不会出现“重试”的对话框(某些数据提交页面除外)。
struts是按forword的规则转向的,如按forword转向,url不会变化,如按刷新并不会转向到当前页面,该怎么做?另外,就算forword到其他页面,按下刷新,由于是forword是POST传递的,会出现“重试”对话框。当然有哥哥说可以将forword换成request,但这样在A页面的值将无法传递到B页面(GET不安全),怎么解决?可能这些问题在老手看来很菜,但我真的想了很久搜了很久,没想到解决的办法,还请大家来帮忙解惑,谢谢!

解决方案 »

  1.   

    你用重定向啊,至于里面的数据可以用session传递的
      

  2.   


    用重定向是可以,但您知道一个程序有多少跳转,每一次跳转的数据可能大不相同。重要的是如果数据很大,然后跳转又很频繁,最后用户又很多的话,这样频繁的封装session,不知道对服务器效率、代码质量会有多大影响呢?
      

  3.   

    struts 使用的是forward而不是redirect
    在地址栏上的地址不会发生变化。
      

  4.   


    我希望发生变化,希望用户点击某个链接转到某个页面,按刷新时不会出现提交,不用session,这样一定要用get+redirect吗,另外还希望刷新时程序会访问数据库得到最新数据。另外默认首页用什么方法可以避免譬如用meta自动转向到do,才能访问数据库的问题?
      

  5.   

    jsp对应asp和php ,struts只是一种封装servlet的框架而已post方式不管是哪种页面,刷新都会出现重试如果不想出现,最好是用js的跳转(当然也是get方式)
      

  6.   

    再配置文件里
    result类型有很多:redirect,redirect-action,action-chain.....楼主去多看看