用的是struts2,我想在首页(如index.jsp)打开后就能从数据库读取数据并显示在首页上(用的struts2的iterator标签)目前采用的方式是,在首页的<head>部份加了这么一句:
<%if(request.getAttribute("T_flag")==null){response.sendRedirect("index.do");}%>
跳转到一个action,调用里面的方法取数据后(而且有return SUCCESS,然后再通过配置文件跳转到首页),赋值到页面的标签中。功能是实现了,不过这样首页打开后url会显示为index.do的格式
像这样的功能还有没有其他的实现方式啊?或者能够把url映射成不显示为*.do的形式

解决方案 »

  1.   

    你的首页不直接设为index.do,还要多跳次干什么,觉得.do难看就用url重写伪装下
      

  2.   

    如果url重写要怎么做啊?能不能通过struts的配置文件来重写url?
      

  3.   

    用frameset吧。首页不是一般都有分块的嘛
      

  4.   

    如果 你想你的jsp显示 在request等范围内的东西
    那么 默认这个jsp文件是不应该让用户访问的
    也就是不能xxx/inex.jsp就显示结果的
    用户只有这样才能访问:
    http://网址/项目名(或者 配置下tomcat,这样也行:http://网址)
    然后用户就进入index.jsp了
    当然,配置下web.xml的默认页,设成struct2的方式(当然 不能用index.jsp了,写成无后缀名或.action的形式)
      

  5.   

    不能让用户直接 访问jsp文件的方式 是:
    把jsp放在web-inf文件夹下
    或者 
    设一个过滤器。
      

  6.   

    这个可以借助servlet
    你把index.jsp配置成一个servlet的映射路径
    实际上index.jsp是不存在的
      

  7.   


    可以建立一个空的JSP页面,里面就只有一个<jsp:forword>标签跳转
     你把这个页面设为首页,不仅地址栏不会改变,而且也能得到你想要的效果
      

  8.   

    楼上的说的对,用<jsp:forword/>标签跳转到一个action中,action中获得数据再跳转到index页面。