0

我有一个简单的“注册”页面,使用 primefaces 标签构建,用户输入他的登录名,单击“确定”,该信息通过对 bean 的 POST 请求存储在 DB 中。登录已正确保存,但还有另一个...我想存储表示用户“角色”并且始终等于“访客”的隐式字符串字段。我尝试了两种不同的方法,但对我来说都失败了:

1)

<h:outputLabel for="login" value="Login" />
<p:inputText required="true" id="login" value="#{userBean.login}" 
    label="Login" />
<h:inputHidden value="#{userBean.roleName}" id="rolename" 
    name="Guest" />
<p:commandButton value="OK" update="dataForm" action="#{userBean.create}" 
     ajax="false">

2)

<h:outputLabel for="login" value="Login" />
<p:inputText required="true" id="login" value="#{userBean.login}"
     label="Login" />
<p:commandButton value="OK" update="dataForm" action="#{userBean.create}" 
    ajax="false">
    <f:param id="rolename" value="User" binding="#{userBean.roleName}"/> 
</p:commandButton>

有人可以为我提供一个想法吗?谢谢。环境:jdk7、tomcat7、eclipse、primefaces

4

1 回答 1

2

使用纯 HTML<input type="hidden">或 JSF<f:param>以及@ManagedProperty.

所以,要么

<input type="hidden" name="rolename" value="Guest" />

或者

<p:commandButton ...>
    <f:param name="rolename" value="Guest" />
</p:commandButton>

无论哪种方式,它们都可以作为 HTTP 请求参数通过

@ManagedProperty("#{param.rolename}")
private String rolename; // +getter+setter
于 2013-07-09T11:48:38.183 回答