Struts的action参数和HTML Form Action 冲突

Summary:

          在配置struts的action的时候尽量避免用action作为命令模式的那个参数,以免和form的action冲突。如果选择action作为参数的话。 可以通过attribute来获取或修改form的action。


singlePremiumTopupForm.attributes["action"].value='/myAction.do?action=refreshList;

 

    <form name="MyForm" method="post" action="/myAction.do">

<action path="/MyAction" type="cn.choelea.action.MyAction" name="MyForm" scope="session" parameter="action" validate="false">
         <forward name="mainSummary" path="/EFormList.do?action=List"/>
	.......
</action>

 我们在用struts的时候,struts是采用的命令模式来寻找Action中的方法的。 所以在struts框架的页面中一般会有以下代码:

<form name="MyForm" method="post" action="/myAction.do">

...................


<input type="submit" name="action" value="Save & Next" class="inputbutton">
<input type="submit" name="action" value="Validate" class="inputbutton">

 当我们点击button的时候对应的 键值对  action=Save & Next 或者action=Valiate就会传到服务器。 但有些情况我们需要有javascript 去改变action.  例如有个下拉框我们需要根据选择来刷新页面:

function sub(){
	url='/myAction.do?action=refreshList';
	MyForm.action=url;
	MyForm.submit();	
}

此种情况如果有名为action的input对象或者其他对象的话。这个javascript方法sub其实并没有改变form的action。

MyForm.action=url; 会出现js脚本错误,因为这个赋值是对input域赋值, 所以要用MyForm.action.value=url. 和标单提交的action就毫无关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值