将jsp中的javascript值传递给struts2中的action类

时间:2012-08-30 01:34:10

标签: javascript jsp java-ee struts2

how can i pass value from javascript to a java class in struts2? 这是类似于我想要的链接。但是它对我不起作用。 我尝试过这样的事情。 隐藏在jsp中的Struts标记是

    function redirect(id)
    {
    window.alert("Hello"+id);
    document.getElementById('param_ID').value=id;
    document.forms["./ListAlgorithmAction"].submit();
    }

在我的动作类中,我已经为param_ID声明了getter和setter。但是它返回null。

请帮助。 谢谢。

4 个答案:

答案 0 :(得分:0)

你应该这样使用

<s:hidden id = "param_ID" name="xyz" />

现在你应该在struts动作中为xyz属性设置一个getter和setter。

您应该始终在Struts操作中映射到属性的标记中具有name属性。

希望这有效。

答案 1 :(得分:0)

如果页面未提交您的hidden字段,则隐藏字段可能不在您的表单元素中。您可以尝试将其作为参数传递给您的网址。试试这个

function redirect(id)
{
     var form = document.forms[0];
     var url = './ListAlgorithmAction?param_ID=' + id;
     form.action = url;
     form.submit();
}

让我知道这是否有效。

答案 2 :(得分:0)

如果你想调用一个动作并返回数据,你应该使用struts2-json插件JQuery脚本来调用动作

    var abc = $("#abc").val();
            $.getJSON('youraction.action', {
                variable -name action class : abc,
                            value to be passed:value,

        //and so on
            }, function(data) {


        //your processing code
                }
            });
            return false;
        });

如果您只想调用操作,可能需要使用$ .ajax代替$ .getJson

如果你想使用struts 2-json那么你还需要更改你的struts.xml,即

<result name="success" type="json"></result>

值得一试

答案 3 :(得分:0)

我遇到了类似的问题并通过在JavaScript函数中附加Action类并附加URL参数来解决它,如下所示:

<a href="(<%actionClassName%>.action?<%URLParms%>" />