Javascript 如何将参数从JSP传递到Struts 2操作
我有一个应用程序,每次按下该项目的按钮时,我都要将项目Javascript 如何将参数从JSP传递到Struts 2操作,javascript,java,jsp,parameters,struts2,Javascript,Java,Jsp,Parameters,Struts2,我有一个应用程序,每次按下该项目的按钮时,我都要将项目id传递给操作 我的JSP: 行动: 公共类产品SCPU扩展BaseAction实现可准备的SessionAware{ 私有静态最终长serialVersionUID=2124421844550008773L; 私有列表颜色=新的ArrayList(); 私有列表CPU; 私有字符串id; 公共字符串getId(){ 返回id; } 公共无效集合id(字符串id){ this.id=id; } 当我将id打印到console时,它的值为
id
传递给操作
我的JSP:
行动:
公共类产品SCPU扩展BaseAction实现可准备的SessionAware{
私有静态最终长serialVersionUID=2124421844550008773L;
私有列表颜色=新的ArrayList();
私有列表CPU;
私有字符串id;
公共字符串getId(){
返回id;
}
公共无效集合id(字符串id){
this.id=id;
}
当我将id打印到console时,它的值为null
。有什么问题吗?应该这样做:
<s:url id="myurl" action="addToCart">
<s:param name="id" value="%{#cpu.id}" />
</s:url>
<s:submit value="addToCart" action="%{myurl}"/>
您需要使用表单元素
<form action="passId>
<s:hidden name="id" value="%{#cpu.id}" />
<s:submit value="addToCart" action="addToCart" type="submit"/>
</form>
问题在于,您无法使用submit
标记的主体中的param
标记将s:submit
标记参数化为代码中的标记
您也不想添加隐藏的
字段,因为有多个值提交给了操作。这是因为许多隐藏字段都是以相同的名称呈现的。在提交表单之前,您只能使用一个字段并更新其值
您可能使用了错误的标记将参数传递给操作。您可以使用锚标记并使用param
标记对其进行参数化
第二种方法是使用javascript修改操作
属性。这样,您还可以使用按钮
标记
不建议使用第三种方式,因为它要求使用多个表单,每个链接一个表单。通过这种方式,您可以直接向表单操作属性添加一个参数
下面是上述选项的代码
三位一体:
您好,参数1开始
提交
为什么不像
那样在隐藏字段中传递参数?如果我使用隐藏标记传递参数,id值由项目的所有id组成,在我的示例中为1,2。我希望它为1或2。我要求执行类似于我所做的
的操作。但最终id包含所有项目id。这是我的提交:我不明白你想通过你的评论说些什么??参数是以1:3传递的,但还有一个参数你应该自己找到。
<form action="passId>
<s:hidden name="id" value="%{#cpu.id}" />
<s:submit value="addToCart" action="addToCart" type="submit"/>
</form>