如何从JSF页面将模板文本传递给bean

时间:2015-10-15 02:47:27

标签: jsf

我有一个长描述的复选框。如果用户选中该复选框,我想在电子邮件中传递该说明。

我不想在后端bean和JSF页面中编写相同的描述。相反,我想将前端描述传递给bean。

我如何在JSF中执行此操作

<h:selectBooleanCheckbox value="#{contactUsBean.subscribeNewsLetter}" />
I would like to receive the news letters from the company abc......... 

这个冗长的描述需要传递给bean。

1 个答案:

答案 0 :(得分:0)

用你的id来抓住你想要抓住的东西。在表单提交上使用javascript抓取内容并将其放在隐藏的输入字段中并将其放入bean中。或者,你知道,只需将它写在bean或bundle中并抓住它。

从捆绑文件中获取它:

创建一个名为“strings”的包或任何你想要它的包。创建一个名为“strings.properties”的文件。

在里面写下你的内容:

Content=bla bla bla.

然后从文件中抓取它:

private final static String BUNDLE_BASENAME = "resources.strings.strings";
private ResourceBundle bundle = ResourceBundle.getBundle(BUNDLE_BASENAME,
        FacesContext.getCurrentInstance().getViewRoot().getLocale());
String content = bundle.getString("Content");

将它写在你的jsf页面上:

    <f:loadBundle basename="resources.strings.strings" var="pmsg" />

    #{pmsg.Content}

对于另一种方法,javascript有很好的文档记录,但是很好:

myContentElem = document.getElementById("id");
myContent = myContentElem.innerHTML;
getElementById("hiddenInput").value = myContent;

Srsly把它放在你的bean或bundle中,这是迟钝的。如果您不想写两次,只需使用EL表达式,这样就不会在jsf页面中编写它。