【问题标题】:How to pass country id to <a href> tag?如何将国家 ID 传递给 <a href> 标签?
【发布时间】:2014-04-02 09:26:57
【问题描述】:

我得到了以下代码:

<form method="post" accept-charset="UTF-8" action="showPartners.action?" id="_form" onsubmit="return selCheck();">
<div style="float: left; width: 350px;">
    <span class="text_vert"> Select Country : </span>&nbsp;&nbsp;
    <s:select style="width:200px;" onchange="loadBusinessList();"
    headerKey="-1" headerValue="Country Select" list="couList"
    listKey="idCountry" listValue="label" id="countryId"
    name="countryId">
    </s:select>
</div>

<a href='addPartner.action?height=550&width=850&id=<s:property value="countryId"/>'" >Insert</a>
</form>

我需要做的是将国家 ID 传递给 a href 标记中的链接,但我得到的是 ID=0。

我将不胜感激。

【问题讨论】:

    标签: java jsp parameter-passing


    【解决方案1】:

    最简单的解决方案是使用 JavaScript,如下所示:

    <s:select style="width:200px;" onchange="loadBusinessList();document.getElementById('anchor_id').href=document.getElementById('anchor_id').href.replace(/&id=(?:$|\d+)/, '&id=' + this.value)" ...
    

    还有:

    <a id="anchor_id" href='addPartner.action?height=550&width=850&id=0'" >Insert</a>
    

    请注意:代码假定您的 countryId 是整数。

    【讨论】:

    • 感谢您的回复。您的解决方案会生成一个链接:“localhost:8080/admin/…”。 “id=”丢失了。一旦我选择了国家并想要更改选择,id 就不会第二次更新了。有什么建议吗?
    【解决方案2】:

    创建 curl 并使用它的最佳方式。

    <c:url value="addPartner.action" var="myAddPartnerUrl" scope="page">
    <c:param name="height" value="550" />
    <c:param name="width" value="850" />
    <c:param name="id" value="${countryId}" />
    </c:url>
    

    html:

    <a href="${myAddPartnerUrl}">
    

    您可以动态地管理您的 url,而且语法没有问题,因为 c:url 自己创建了正确的字符串。此外,您可以将参数用于“addPartner.action”,而不是直接放入 c:url(其余参数相同)。

    Link Tutorial

    【讨论】:

    • 这个解决方案也不起作用。调试器 sais: "pageContext.getExpressionEvaluator().evaluate("${myAddPartnerUrl}", java.lang.String.class, ((javax.servlet.jsp.PageContext) pageContext).getVariableResolver(), null) = >None of “org.apache.jasper.el.E​​xpressionEvaluatorImpl”类中的“评估”方法采用“(java.lang.String, java.lang.Class, org.apache.jasper.el.VariableResolverImpl, java.lang.对象)"。
    • 这给出了“未终止的
    • 不走运,这给出了 id=0 的 url,并且当我更改下拉值时 id 不会改变。
    • countryId 它被分配一次,这就是您无法使用它的原因。结合这篇文章中的方法:stackoverflow.com/questions/20845862/… 所以让 countryId 依赖于您的选择
    【解决方案3】:

    在更改选择列表中的值时尝试在单独的变量中分配国家 ID,然后在 href 链接中传递该变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-24
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多