将用户的注释作为字符串传递给java bean

时间:2013-07-07 18:03:27

标签: java javascript jsf

我需要接受用户点击按钮时的注释,并将其作为字符串传递给后面的托管bean。 这就是我在jsp页面上的内容 -

    <h:column>
            <button onclick="myFunction();">
                <h:commandLink value="Forward" action="#{add_leave.Forward()}">
                <f:param name="emp_id2" value="#{leave_requests.emp_id}" />
                <f:param name="request_id2" value="#{leave_requests.request_id}" />

                </h:commandLink>
            </button>
        </h:column>

这是javascript函数 -

function myFunction()
{
    var x;
    var reason=prompt("Please enter your reason:","Reason");
    x=reason;

}

我在bean的AddNewLeave.java函数中需要这个原因变量 -

public void Forward()
{
    ...
    ...
    String reasonStr;
}

我该怎么办?另外,还有其他更简单的方法可以用来获取用户在其他地方使用的评论吗?我是网络应用程序编程的新手,并且在我需要的时候尝试学习东西。

1 个答案:

答案 0 :(得分:1)

您可以考虑使用<h:inputHidden>在表单提交时自动将值发送到您的bean:

<h:form id="form">
    <h:inputHidden id="remark" value="#{bean.remark}" />
    ...
</h:form>

这样,一旦你通过JavaScript更新隐藏的输入值并在之后提交表单,你最终会得到JSF为你预设的bean属性。

JS片段可能是:

document.getElementById('form:remark').value = remark;

当然,使用普通<input type="hidden">可以获得相同的功能,但在这种情况下,您必须在请求参数映射中找到备注字符串。