[英]How to get the input form values along with whole page HTML source using JavaScript to pass it to backing bean?
在我的Facelets頁面中,我有一個<div>
,其中包含一些輸入文本框,供用戶輸入要提交的值。 我將使用此HTML源生成PDF。
<div id="wrapper">
<h:form prependId="false">
<h:inputHidden id="source" value="#{bean.source}" />
<h:inputText id="fName" value="#{bean.firstName}"/>
<h:inputText id="lName" value="#{bean.lastName}"/>
<h:inputText id="age" value="#{bean.age}"/>
</h:form>
</div>
像這樣,我也有其他表單字段。 當用戶在表單中輸入所有數據並單擊Submit按鈕時,我正在使用JavaScript在此<div>
獲取源代碼。
function getHtml() {
document.getElementById('source').value = document.getElementById('wrapper').innerHTML;
}
並單擊提交傳遞給bean。
<h:commandButton type="submit" id="appl-submit" action="#{bean.submit}"
value="Submit" onclick="javascript:getHtml();"/>
在支持bean類中
@ManagedBean
@SessionScoped
public class Bean{
private String firstName;
private String lastName;
private int age;
private String source;
// Getters and setters for all properties.
}
但是我只得到帶有空輸入字段的表單,而不是帶有用戶輸入值的HTML源。 如何獲取HTML源代碼和表單值?
但是我只得到帶有空輸入字段的表單,而不是帶有用戶輸入值的HTML源。
這是預期的行為。 僅當您已經提交了表單並因此重新顯示提交的表單(作為一種確認)時,此方法才有效。
如何獲取HTML源代碼和表單值?
您在上一個問題中已經回答了該問題,您從未提供過反饋: 獲取當前XHTML頁面的URL,該頁面的用戶數據已填寫到JSF Managed bean中 。 在您的特定情況下,這甚至可以更簡單地完成,因為您顯然已經擁有一個會話范圍的bean(但是,由於同一個會話中多個瀏覽器窗口/選項卡中的同一個頁面可能會相互干擾,因此設計仍然很糟糕):
public void submit() throws IOException {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest) externalContext.getRequest();
HttpSession session = (HttpSession) externalContext.getSession(true);
String url = request.getRequestURL().append(";jsessionid=").append(session.getId()).toString();
Document doc = Jsoup.connect(url).get();
String html = doc.select("#wrapper").html();
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.