【问题标题】:whats the practice to write a review page in JSF?在 JSF 中写评论页面的做法是什么?
【发布时间】:2010-08-30 15:23:11
【问题描述】:

我有一个 JSF 页面,它从用户那里获得的输入很少,我想向用户显示一个评论页面 - 正如他在上一页中作为输入所给出的那样。我在审阅页面中使用 h:OutputText 来显示用户给出的所有输入 - 但是当用户已经审阅并且用户想要保存它们时 - 我有一个 commandButton 绑定到支持 bean 中的操作方法- 由于未提交 outputTexts,因此不会提交任何值。我必须在显示评论页面的同时在服务器端获取值的选项是什么 - 我不想让 bean 会话范围。

我正在使用 Apache My faces 实现 JSF 1.2,没有任何组件库。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    您可以使用h:inputHidden 为后续的 POST 请求保留数据。例如

    <h:outputText value="#{bean.property}" />
    <h:inputHidden value="#{bean.property}" />
    

    如果您对组件库没有反感,我建议您使用 Tomahawk 的 t:saveState。这样您就无需在隐藏字段中分别指定每个属性。

    <t:saveState value="#{bean}" />
    

    当您已经使用 JSF 2.0 时,只需将 bean 放在 view 范围内就足够了(假设您有条件地在同一个视图中呈现输入表单和审阅表单)。这样,只要您与同一个视图交互,它就会一直存在。

    @ManagedBean
    @ViewScoped
    public class Bean {
        // ...
    }
    

    【讨论】:

    • 感谢 BalusC。如果我在评论页面中有一个包含许多列的数据表,我如何将这些值带到服务器端?UIData#g​​etDataModel 是唯一的方法?
    • 没有。每个模型属性只需一个h:inputHidden。 JSF 将相应地更新模型值。您只需按常规方式访问模型(value 属性绑定的 bean 属性)。
    猜你喜欢
    • 1970-01-01
    • 2015-10-08
    • 1970-01-01
    • 2014-08-03
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多