我看到两个页面,是展示订单的列表,列表最后两列是“状态”“操作”,状态内容是"历史订单"和"未处理",相应的操作列是“处理”和空白的内容,"处理"字样是有超链接的,点击一下,前面那列状态会由"未处理"变成"历史订单",这写功能都好实现,
我奇怪的是他的地址栏从始至终都是http://localhost:8080/Orders/showOrders.do   
<c:forEach items="${requestScope.list}" var="order">
<tr>
<td>
${order.orderId}
</td>
<td>
${order.name}
</td>
<td>
${order.proName}
</td>
<td>
${order.orderCount}
</td>
<td>
${order.orderDate}
</td>
<td>
${order.statusStr}
</td>
<td>
<c:if test="${order.status==0}">
<a href="showOrders.do?pare=chuli&id=${order.orderId }">处理</a>
</c:if>
</td>
</tr>public ActionForward chuli(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
int id=Integer.parseInt(request.getParameter("id"));
Orders order=ordersDao.findById(id);
//1是已经处理,0是未处理
order.setStatus(1);
ordersDao.update(order);
//查询所有的订单列表
List list=ordersDao.findAll();

request.setAttribute("list", list);
//跳到上面的那个list页面
return mapping.findForward("list");
}
我的项目点击"处理"后,功能是实现了,但是地址栏showOrders.do后有参数,我知道是因为get的原因,但是就是不懂那个效果怎么实现的,地址栏都没变过http://localhost:8080/Orders/showOrders.do 

解决方案 »

  1.   

    <action patch="xxx" name="xxx" class="xxxx">
    <forward name="xxx" path="xxx" redirect="true"/>
    </action>这样一来地址栏就会改变了,不过有可能会遇到问题! 如果用了之后你的项目   莫名其妙的出错了  可能是redirect="true"的原因
      

  2.   


     request里有个方法 ,,叫啥我忘了。。 就是所谓的内容转向。 如果你都采用这种方式,,地址栏就不会变老
      

  3.   

    要想让地址栏不变,就用转发.
    转发一直都是同一个请求,所以地址栏不变,而重定向会重新发送一个请求,所以地址栏会改变。
    要让地址栏改变就用重定向,如1楼所示,设置forward的redirect="true"就可以了。
    也可以通过response.sendRedirect(String dist)方法实现重定向。
      

  4.   

    还有一种可能就是,他用的是html框架,frameset,点击的时候其实网页在变化,但是地址看不到变化,就像csdn刚登陆那个页面那样。