我有一个带有字段的 struts2 操作:private Long omradeId;
该字段具有 setter/getter 。
该操作被发送到一个 jsp,在该 jsp 中我可以使用 <s:property>
访问该字段标签。这一切都很好。
现在我在 jsp 中还有一个部分,我在其中定义了一个 <script>
.在该脚本中,我想创建一个变量,该变量将使用上述 struts2 字段作为值构建一个 url。
<script type="text/javascript">
var url = "/path/to/action?parameter1=";
</script>
如何将 omradeId 的值放在等号 (=) 之后?我尝试使用 <s:property>
但这没有用。
有什么建议吗?
最佳答案
"/path/to"将根据网络服务器而改变。为避免这种情况,请使用 struts2 url 标记。
参见:http://struts.apache.org/2.x/docs/url.html
对于命名空间“/”中名为“action”的操作,其参数名为 parameter1,其值为 omradeId,您只需说:
<s:url namespace="/" action="action">
<param name="parameter1" value="%{omradeId}"/>
</s:url>
将上面的内容放入我们拥有的 JS 变量中:
var url = "<s:url action="action"><param name="parameter1" value="%{omradeId}"/></s:url>";
使用上述将意味着您的应用程序可以安装在不同的应用程序服务器上而无需更改。
格式化 xml 比内联更好,如果使用大量参数将 var 参数添加到 s:url 标签为其命名,然后您可以在许多地方使用 s:property 标签引用此字符串会保持干净。
<s:url namespace="/" action="action" var="myString">
<param name="parameter1" value="%{omradeId}"/>
</s:url>
var url = "<s:property value="#myString"/>";
关于java - Struts2参数到javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6971559/