Struts:如何让jsp页面一启动就执行某个action?

03-09-28 yuanmeng163
RT

2
raynix
2003-09-28 11:51
你可以在这个jsp开始的部分写上

<jsp:include path="xxx.do"/>

<p>

然后把这个xxx.do配置为你期望的Action就可以了。

不过这样很别扭,不是么?直接include另一个jsp更省事。

yuanmeng163
2003-09-28 16:56
楼上的,不行啊。

出异常:

HTTP Status 500 -

type Exception report

org.apache.jasper.JasperException: /CategoryList.jsp(5,0) Include action: Mandatory attribute page missing

.....

....

crazymens
2003-09-29 10:17
也可以用struts的logic:forward标签。

banq
2003-09-29 11:07
其实你的思维还没有转到MVC模式上,Jsp是一个View,被动 静态的界面,没有主动行为的,主动行为的控制都是在Action中。

实现你的目的,就是先调用一个Action (在这个action中启动另外一个action的功能)-->通过action推出Jsp。

因为在MVC中,任何Jsp启动都是因为action首先执行的结果。

iceant
2003-09-29 11:39
^_^

"其实你的思维还没有转到MVC模式上,Jsp是一个View,被动 静态的界面,没有主动行为的,主动行为的控制都是在Action中"

Banq, 不好意思~~ 我觉得你这句话欠妥,为什么一个视图开始显示的时候就不能有一个事件呢? MVC 中好像是可以在一个视图显示的时候触发一个事件,让事件去完成某个 Action 的吧?

我认为,Struts 没做好,所以才需要先做一个Action 再显示一个 View.

mooncui
2003-09-29 12:09
类似这个问题,我遇到一个情况:

action1{

查询数据,将数据放入form2中,跳到jsp2。

其中form中的数据有个ArrayList objects

}

在jsp2页面中{

<logic:iterate>

显示objects

</logic:iterate>

}

在form2提交到action2时,form2中的objects是null了,这个问题怎么

解决?或者有其他方法来实现比较好?如果把这个action放在session中

是可以的,但我想用request,不知道是否可以?

charlie
2003-09-29 15:19
1. 把该对象放到session 中。

2. 在JSP1 中隐式提交该对象到form2 中。

mooncui
2003-09-29 17:16
我不是说了,不想用session,想用request

premaster
2004-08-18 14:24
现在web.xml中定义一个跳转中间文件:

<welcome-file-list>

<welcome-file>/jsp/indexTransfer.jsp</welcome-file>

</welcome-file-list>

跳转中间文件只有一句话:

<%@ taglib uri="struts/logic-el" prefix="logic" %>

<html:html>

<head>

<title>aa</title>

</head>

<body bgcolor="FFFFFF" text="#000000">

<logic:forward name="welcome1" />

</body>

</html:html>

在Struts-config.xml文件中定义global-forward,如下:

<global-forwards>

<forward name="welcome1" path="/do/welcome"/>

</global-forwards>

在Struts-config.xml文件中定义一个action-mappings,如下:

<action path="/welcome" type="net.supcon.action.WelcomeAction">

<forward name="to1stpage" path="/jsp/1stpage.jsp"/>

</action>

用上述方法是首页就可以调用某个action,其他jsp页面方法相同。

如果其他人有更好的方法,请告知。

premaster
2004-08-18 14:30
刚才发的不好,重发。

先在web.xml中定义一个跳转中间文件:

  <welcome-file-list>
    <welcome-file>/jsp/indexTransfer.jsp</welcome-file>
  </welcome-file-list>
<p>

跳转中间文件只有一句话:

<%@ taglib uri="struts/logic-el" prefix="logic" %>
<html:html>
<head>
<title>aa</title>
</head>

<body bgcolor="FFFFFF" text="#000000">

<logic:forward name="welcome1" />
</body>
</html:html>
<p>

在Struts-config.xml文件中定义global-forward,如下:

 <global-forwards>
  <forward name="welcome1" path="/do/welcome"/>
 </global-forwards>

<p>

在Struts-config.xml文件中定义一个action-mappings,如下:

  <action path="/welcome" type="net.supcon.action.WelcomeAction">
   <forward name="to1stpage" path="/jsp/1stpage.jsp"/>
  </action> 
<p>

用上述方法使首页就可以调用某个action,其他jsp页面调用action方法相同。

如果其他人有更好的方法,请告知。

l_walker
2004-08-23 16:40
god,so easy的事做的这么复杂~~~

<script language="javascript">

window.location.href="Home.do";

</script>

or

用楼上的gobal-forward跳转~~~~

猜你喜欢