如何将参数从JSP传递到Struts2操作
How to pass a parameter from JSP to Struts 2 action
我有一个应用程序,每次按下项目的按钮时,我都想将项目id
传递给操作。
我的JSP:
<s:submit value="addToCart" action="addToCart" type="submit">
<s:param name="id" value="%{#cpu.id}" />
</s:submit>
行动:
public class ProductsCPU extends BaseAction implements Preparable, SessionAware {
private static final long serialVersionUID = 2124421844550008773L;
private List colors = new ArrayList<>();
private List cpus;
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
当我将id打印到控制台时,它具有null
值。问题出在哪里?
这应该做:
<s:url id="myurl" action="addToCart">
<s:param name="id" value="%{#cpu.id}" />
</s:url>
<s:submit value="addToCart" action="%{myurl}"/>
您需要使用form元素。
<form action="passId>
<s:hidden name="id" value="%{#cpu.id}" />
<s:submit value="addToCart" action="addToCart" type="submit"/>
</form>
问题是,不能像在代码中使用submit标记体中的param标记那样,用<s:param>
标记来参数化<s:submit>
标记。
您也不希望添加<hidden>
字段,因为您已经向操作提交了多个值。这是因为许多隐藏字段使用相同的名称进行渲染。您可以只使用一个字段,并在提交表单之前更新其值。
可能您使用了错误的标记将参数传递给操作。您可以使用锚点标记,并使用<s:param>
标记对其进行参数化。
第二种方法是使用JavaScript修改action
属性。通过这种方式,您还可以使用<button>
标记。
不建议使用第三种方式,因为它需要使用多个表单,每个链接一个。通过这种方式,您可以直接向表单操作属性添加一个参数。
以下是上述选项的代码。
三合一:
<s:form name="myForm13" namespace="/" action="save?message=Hello param 3" theme="simple">
<br/><s:a cssClass="btn btn-primary" action="test"><s:param name="message">Hello param 1</s:param> Go </s:a>
<br/><s:a href="#" cssClass="btn btn-warning" onclick="myForm13.action='test?message=Hello param 2';myForm13.submit()">Submit</s:a>
<br/><s:submit cssClass="btn btn-danger" action="test"/>
</s:form>
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何确定javascript已经完成了某些操作.ios上的
- 防止Alt+Shift默认操作或检测多种操作系统语言的Javascript
- 从JavaScript访问struts操作中的属性
- 将数组对象传递到struts2中的操作类
- 如何执行需要在主打开JSP中执行的struts2操作
- 将参数从anchor标记发送到struts2操作
- 当我从struts2操作在js函数中获得JSONArray时,它是空的,我不知道为什么
- 在Struts2中将参数从视图传递给操作
- 在 struts2 操作中访问隐藏字段(在 JavaScript 中创建)
- 将值添加到 arraylist(在 javascript 中)并在 struts2 操作中检索
- 调用 Struts2 操作,每个 jQuery DataTable 行中的参数
- 使用Ajax将表单数据发送到Struts2操作类
- 如何使用jQuery将JSON对象数组发布到Struts2操作
- 在Struts2中将一个参数从JSP传递给操作类
- 如何将参数从JSP传递到Struts2操作
- 在提交表单时未调用struts2操作方法
- 通过struts2操作类(使用jtable)从数据库填充下拉列表
- 如何从javascript调用struts2操作