隐藏Struts 2中URL标记传递的参数

时间:2014-08-31 14:02:58

标签: java struts2

在我的Struts 2应用程序中,我使用迭代器标记从数据库中获取一个值表,并使用相应的getter和setter。例如,我获得了帐号,姓名和帐户余额列表。

现在我不想做的是,如果有人点击帐号,那么请求将被发送到另一个需要getter和setter的动作类,并将他重定向到一个页面,其中将显示帐户详细信息在那个帐号上。

问题是,当用户点击url时,值会像get参数一样传递,因此它非常不安全。 我想隐藏价值观。

目前我正在使用以下内容:

<s:url action="custACDetails" var="urlTag" >
    <s:param name="yourAc"><s:property value="acno"/></s:param>
</s:url>
<a href="<s:property value="#urlTag" />" ><s:property value="acno"/></a>

1 个答案:

答案 0 :(得分:0)

您可以添加表单来触发表单提交事件,而不是默认链接的click事件。表单应包含用于保存参数值的隐藏字段。然后添加javascript代码来处理click事件。

<s:url action="custACDetails" includeContext="false" var="urlTag"/>
<s:set var="contextPath">${pageContext.request.contextPath}</s:set>
<s:a id="acno" href="%{#contextPath+#urlTag}"><s:property value="acno"/></s:a>
<s:form id="form" action="%{#urlTag}" method="POST">
  <s:hidden name="yourAc" value="%{acno}"/>
</s:form>
<script type="text/javascript">
  $(document).ready(function() {
    $("#acno").click(function(e) {
      e.preventDefault();
      $("#form").submit();
    });
  });
</script>