struts1页面的action提交用Struts2怎么实现?

假设一个页面cart.jsp
里面的部分代码:

function settleAccounts(){ if(validateAmount()){ var form = document.forms["buycart"]; form.method.value="settleAccounts"; form.submit(); } } function modifyAmount(){ if(validateAmount()){ var form = document.forms["buycart"]; form.method.value="updateAmount"; form.submit(); } }

" method="post">
如果您修改了商品数量,请点击 修改数量


怎样将上面的struts1的action请求用struts2来代替

struts1的传递方式:
1.在页面需要定义一个标准,一般用method表示
eg
method = 'add' | method = 'del'

这样可以在struts1中用method来区分到达需要执行那个方法。

struts2:
struts2不需要method,只需在action + ! + 方法.action
eg:
user!add.action

也就是说struts2会根据上面的方式自动帮我们解析

那么在你的程序中:
Struts1:
function settleAccounts(){
if(validateAmount()){
var form = document.forms["buycart"];
[color=red]form.method.value=""; [/color]
form.submit();
}
}

Struts2:

function settleAccounts(){
if(validateAmount()){
var form = document.forms["buycart"];
[color=red]form.action="user!add.action"; [/color]
form.submit();
}
}

注意红色的地方。是可以按要求修改的

另外。建议你看看struts2的例子。看看它的流程。这样对比一下struts1。可以很快将struts1的jsp页面改造成struts2的jsp页面

/s:url

XXX为Action的名字

默认的就是POST

可以 在Form中添加 method="POST/GET"呀

需要改两个位置:
1.

" method="post">


改为:


color=red]shopping!add.action[/color]解释:

shopping就是对应的action;
add.action对应的是action中的方法,即struts1中的method=add

2.js

function settleAccounts(){
if(validateAmount()){
var form = document.forms["buycart"];
form.method.value="settleAccounts";
form.submit();
}
}

改为:

function settleAccounts(){
if(validateAmount()){
var form = document.forms["buycart"];
form.submit();
}
}