簡體   English   中英

JSF-從xhtml頁面更新Bean變量

[英]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變量?

您在這里有兩個問題:

  1. 您試圖在c:set標記中設置值,而不使用適當的EL:“#{results.name}”

  2. c:set標簽在人臉生命周期中評估得太早,無法在ui:repeat標簽的內容中使用

在這些情況下,我通常只是將此值作為參數傳遞給需要它的支持bean方法。 例如:#{results.doSomething(results.name)}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM