我试图在单击按钮(非提交按钮)时将文本字段的值作为 URL 参数从 JSP 传递到操作类,并在此链接中找到了解决方案:Onchange event in Struts2 。
我已按照该链接中提到的所有步骤进行操作,即:
- 为
onClick
事件创建 JavaScript 函数 - 在函数(即
setDealers
)内,将值(即"reportGroup"
)传递给操作类,如下所示
function setDealers(){
var rep_value=document.getElementById("reportGroup").value;
alert("Value is"+rep_value);
window.location=="getDealersByGrouppopUpAction?reportGroup="+rep_value;
alert("Just a check")
}
- 在操作类中创建了一个名为
"reportGroup"
的变量,即PopUpAction.java
及其 getter 和 setter。
为了支持这一切,我在 struts.xml
中进行了以下配置:
<action name="*popUpAction" class="popUpAction" method="{1}" >
<!--this will call a desired method present inside action class -->
...
...
</action>
单击按钮时,应调用 PopUpAction
类的 getDealersByGroup
方法,并使用传递的值,即 "reportGroup"
SQL 查询。
但根据上面的 javascript 函数 setDealers
,只有警报命令被执行,并且所需的值没有传递到操作类。
struts.xml
是否缺少/或错误。
最佳答案
首先,您在代码 ==
与 =
中犯了一个拼写错误
window.location="getDealersByGrouppopUpAction?reportGroup="+rep_value;
其次,这听起来像是重定向到操作,用于调用操作使用 s:action
或$.ajax()
请参阅example .
Trird,为了更好地使用 URL,请使用 s:url
标签来构建 url。
var url = "<s:url action='getDealersByGrouppopUpAction'/>"+"?reportGroup="+rep_value;
window.location=url;
关于javascript - 将参数从 JSP 传递到 Struts 2 中的操作类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26452365/