[英]JSF - Update a Bean-variable from xhtml page
我在使用JSF從xhtml頁面更新bean變量時遇到問題。 我可以使用自定義值更新Bean變量,但我希望從xhtml頁面本身中定義的變量中讀取該值。
xhtml頁面的相關部分如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:repeat value="#{bean.variable}" var="results">
<c:set target="#{bean}" property="otherVariable" value="results.name" />
Testing if the bean-variable could be read in the loop: #{results.email}
</ui:repeat>
</h:body>
</html>
在Bean類中,我正在將otherVariable打印到stdout。 每次為空 。 當我用“ 5”代替Tag中的值時,該值已在Bean變量中正確設置。
那么,如何從xhtml頁面更新Bean變量?
您在這里有兩個問題:
您試圖在c:set標記中設置值,而不使用適當的EL:“#{results.name}”
c:set標簽在人臉生命周期中評估得太早,無法在ui:repeat標簽的內容中使用
在這些情況下,我通常只是將此值作為參數傳遞給需要它的支持bean方法。 例如:#{results.doSomething(results.name)}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.