配置中能否出现两次Action?

xiang_zi 2005-06-16 10:16:21
配置文件:
<action path="/showSalePlan" type="plan.showSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlanResult.jsp"/>
</action>
<action path="/genSalePlan" type="plan.genSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlan.do"/>
</action>
<action path="/adjSalePlan" type="plan.adjSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlan.do"/>
</action>


1.welcome.jsp->showSalePlan.do->showSalePlanResult.jsp
2.genSalePlan.do->showSalePlan.do->showSalePlanResult.jsp
3.adjSalePlan.do->showSalePlan.do->showSalePlanResult.jsp
为什么在第2步后再触发adjSalePlan.do,系统没有响应。
而必须又要回到第1步,再走第3步,则响应正常。

我不知道这样配置为什么没有按我的设想正常执行?
为什么要jsp->do->jsp呢?





...全文
154 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
djpsunday 2005-06-18
  • 打赏
  • 举报
回复
<action path="/showSalePlan" type="plan.showSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlanResult.jsp"/>
</action>
<action path="/genSalePlan" type="plan.genSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlan.do"/>
</action>
<action path="/adjSalePlan" type="plan.adjSalePlanAction" scope="request">
<forward name="Success" path="/showSalePlan.do"/>
</action>
这种配置没有问题,你在ACTION加个判断,检查下提交控制器映射是否正确,是否是Mapping.findforword("Success");了,你的这种配置不会有问题,我做过N多个这类项目了!可以排除这部分的问题!
opencsdn 2005-06-18
  • 打赏
  • 举报
回复
of course,可以啦
slaser 2005-06-17
  • 打赏
  • 举报
回复
当然可以一个actionForward到另外一个Action,Action是可以组成一个链,当然自己把蛇头咬住了蛇围那就没办法了。
xiang_zi 2005-06-17
  • 打赏
  • 举报
回复
我的没有形成死循环啊。
只有经过交互才能执行Action的。
就如:
1.用户选Add
2.系统执行Add
3.系统显示结果
4.用户选Edit
5.系统执行Edit
6.系统显示结果
只是我发现,Action配置中直接forward到一个Action,第一次执行是没有问题,第二次执行就没有响应。
scottwhb 2005-06-17
  • 打赏
  • 举报
回复
几个Action相互调用是可以的,但正如楼上所说的,不要形成死循环了
usherlight 2005-06-16
  • 打赏
  • 举报
回复
应该不能直接在structs-config.xml中forward到一个action
好象会引起死循环forward
一般的做法是用一个jsp中转一下。
xiang_zi 2005-06-16
  • 打赏
  • 举报
回复
啥意思呢?这解释能说明我的问题吗?
fanxiangqin 2005-06-16
  • 打赏
  • 举报
回复
<struts-config>

<form-beans>
<form-bean name="loginBean" type="login.userLogin"/>
<form-bean name="regBean" type="login.userInfo"/>
<form-bean name="quesBean" type="question.question"/>
</form-beans>

<global-forwards>
<forward name="login" path="/login.jsp"/>
<forward name="adminlogin" path="/admin/main.jsp"/>
<forward name="loginok" path="/repare.htm"/>
<forward name="adminloginok" path="/admin/main.jsp"/>
<forward name="begin" path="/main.jsp"/>
<forward name="finish" path="/result.jsp"/>
<forward name="reg" path="/admin/stu_add.jsp"/>
<forward name="regfinish" path="/admin/stu_list.jsp"/>
<forward name="questionfinish" path="/admin/question_list.jsp"/>
<forward name="question" path="/admin/question_add.jsp"/>
</global-forwards>

<action-mappings>
<action path="/begin" type="exam.examAction"/>
<action path="/finish" type="exam.finishAction"/>
<action path="/login" type="login.loginAction" name="loginBean" scope="request" validate="false" input="/login.jsp" />
<action path="/admin/login" type="login.loginAction" name="loginBean" scope="request" validate="true" input="/login.jsp" />
<action path="/admin/reg" type="login.regAction" name="regBean" scope="request" validate="true" input="/admin/stu_add.jsp" />
<action path="/admin/questionAdd" type="question.questionAction" name="quesBean" scope="request" validate="true" input="/admin/question_add.jsp" />
</action-mappings>

<message-resources parameter="MyResource"/>
</struts-config>
xiang_zi 2005-06-16
  • 打赏
  • 举报
回复
然而我改成如下:
1.加一个jump.jsp:
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<body>
<logic:forward name="jump"/>
</body>
</html>
2.配置文件改为:
<global-forwards>
<forward name="jump" path="/showSalePlan.do"/>
</global-forwards>

<action path="/genSalePlan" type="plan.genSalePlanAction" scope="request">
<forward name="Success" path="/jump.jsp"/>
</action>
<action path="/adjSalePlan" type="plan.adjSalePlanAction" scope="request">
<forward name="Success" path="/jump.jsp"/>
</action>

流程就变成:
1.welcome.jsp->showSalePlan.do->showSalePlanResult.jsp
2.genSalePlan.do->jump.jsp->showSalePlan.do->showSalePlanResult.jsp
3.adjSalePlan.do->jump.jsp->showSalePlan.do->showSalePlanResult.jsp

就是中间通过jsp来过滤,让它递过去,这样就不会有问题。
我不知道Struts为什么要这样才行,那样就不行?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧