我有一个长描述的复选框。如果用户选中该复选框,我想在电子邮件中传递该说明。
我不想在后端bean和JSF页面中编写相同的描述。相反,我想将前端描述传递给bean。
我如何在JSF中执行此操作
<h:selectBooleanCheckbox value="#{contactUsBean.subscribeNewsLetter}" />
I would like to receive the news letters from the company abc.........
这个冗长的描述需要传递给bean。
答案 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页面中编写它。