2015-10-15 74 views
0

我有一個複選框,它有一個很長的描述。如果用戶選中該複選框,我想在電子郵件中傳遞該描述。如何從JSF頁面將模板文本傳遞給bean

我不想在後端bean和JSF頁面中寫入相同的描述。相反,我想將前端描述傳遞給bean。

我怎樣才能做到這一點在JSF

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

這漫長漫長的描述需要傳遞給豆。

+0

你爲什麼不把它保存在bean中? – Ced

回答

0

圍繞你想要用一個ID抓住一個跨度。在表單提交中,用javascript獲取內容並將其放在隱藏的輸入字段中並將其放入bean中。或者,您知道,只需將它寫入bean或一個包中並將其抓到那裏。

要從包文件抓住它:

創建一個名爲任何你想稱之爲「串」或包裝。創建一個名爲「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把它放在你的豆或束中,這是遲緩的。如果您不想兩次寫入,只需使用EL表達式,這樣就不會將它寫入jsf頁面。