日期:2014-05-20  浏览次数:20782 次

初学struts 对struts 有两个不明白的问题望指点!
比如说我有一个页list.jsp是用来显示数据的,有一个action,是用来给list.jsp招供数据的(集合),那么如果想在list.jsp中看显示出来的数据,那么就要在action中把需要的数据都存在集合中,然后用request.setAttribute( "list ",集合);
然后forward到list.jsp中,我能不能不执行执行action,直接打开list.jsp网页就自动执行action呢,比如说我现在打开的网址是:127.0.0.1/test/list.do
然后forward到了list.jsp页中显示数据,那么我能不能直接打开127.0.0.1/test/list.jsp就显示数据了呢,还有用action   forward跳转到另一页时,网址显示的还是list.do,我想让他直接显示真实的网页地址怎么办呢?


------解决方案--------------------
你这样做不符合开发规范,也能这么做,就是你可以在过滤器里做,这样就更不好了,不过我是为了实现你要的结果
------解决方案--------------------
可以实现。struts的跳转就不要改动它了,只要在list.jsp修改这样的代码:
<c:set var= "items "> <% 这里是你的java代码,但是返回的必须是一个list对象%> <c/set> //定义一个名为items的对象,起内容为你所返回list.
//下面将这个list里面的每一个数组对象以一行来显示。
<table>
<c:forEach var= "item " items= "${items} " varStatus= "vs ">
<tr>
<td> ${item[0]} </td>
<td> ${item[1]} </td>
<td> ${item[2]} </td>
</tr>
</c:forEach>
</table>
如果不是数组对象,可以用 "对象.属性 "来替代${}里面的内容。
------解决方案--------------------
还是按规范来吧
------解决方案--------------------
127.0.0.1/test/list.jsp直接打开可以的啊,只要你把action中相关代码写到jsp里面就可以了,但是代码分离就不够好了啊


我想让他直接显示真实的网页地址怎么办呢?

forward属性里面配置redirect=true