如何在Struts2中使用<s:a>将数据从JSP发送到Action?

时间:2015-08-06 03:28:43

标签: java jsp struts2 ognl struts-tags

我希望实现单击标题,匹配的id被发送到Action,但Action中的id始终为零。

Action使用id搜索数据库中的匹配记录并显示在另一个jsp中。

function saveSettings() {

        var count = 1; //count for db
        var checked = []; //array of checked values
        var inc = 0; //only incremented when checkbox is checked
        var dataString = "x";

        for (var i = 0; i <= 2; i++) { //loads checked array with checked values
            if (document.getElementById("check" + i).checked == true) {
                checked[inc] = document.getElementById("check" + i).value;
                inc++;
            }
        }
        if (checked.length > 0) { // loads checked values into dataString
            for (var i = 0; i < checked.length; i++) {
                if (i == 0) {
                    dataString = "co_" + count + "=" + checked[i]
                }
                else {
                    dataString = dataString + "&co_" + count + "=" + checked[i]
                }
                count++;
            }
        }
        alert(dataString)
    }

2 个答案:

答案 0 :(得分:3)

{@ 1}}中的

id已被弃用(除非您使用的是旧版本)。请改用<s:iterator>

var内使用<s:param>(为了更好的编码,请记住指定命名空间)。
然后从<s:url>引用<s:url>

最后,确保您的行动中有正确的Setter。

<s:a>

答案 1 :(得分:0)

使用<s:param>标记向服务器发送值。所以您的代码看起来像

<s:iterator id="n" value="news">
<tr>
    <td>
    <s:url action="GETNEWS" var="getNews">
        <s:param name="id"><s:property value="#n.id"/></s:param>
        <s:a href="%{getNews}">
            <s:property value="#n.title"/>
        </s:a>
    </s:url>
    </td>
</tr>
</s:iterator>