jsf - 设置可编辑的默认输入值
问题描述
我想创建一个 JSF 应用程序,其中用户必须提供他们的年龄。这将默认为 18 并且是可编辑的(如果用户想要提供不同的值)。
如何实现这个功能?
用户提供的输入值或默认值即 18 将保存在数据库中
<h:form>
<p:panel id="panel" header="New User">
<h:panelGrid columns="3" cellpadding="5">
<p:outputLabel for="age" value="Age:" />
<p:inputText id="age" value="#{managedBean.entityBean.age}" required="true" label="Age">
</p:inputText>
</h:panelGrid>
<p:commandButton value="Save" update="panel" action="#{managedBean.save}" />
</p:panel>
</h:form>
实体.java
public class Entity implements Serializable {
@Column(name = "AGE")
private Integer age;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
managedBean.java
@ManagedBean(name = "managedBeanJava")
@ViewScoped
public class managedBeanJava implements Serializable {
private static final long serialVersionUID = 1L;
private static final Logger logger = LoggerFactory.getLogger(managedBeanJava.class);
private Entity entityBean;
public Entity getEntityBean() {
return entityBean;
}
public void setEntityBean(Entity entityBean) {
this.entityBean = entityBean;
}
private Integer age = 50;
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@PostConstruct
public void init() {
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
Map<String, String> params = externalContext.getRequestParameterMap();
}
public void save(AjaxBehaviorEvent event) {
FacesContext facesContext = FacesContext.getCurrentInstance();
try {
entityBean.setAge(this.entityBean.getAge());
}
}
解决方案
<h:inputText>
您可以直接在托管 bean 中定义默认值。
private Integer age = 18;
推荐阅读
- javascript - 应用程序前端的 Heroku 应用程序崩溃 h10 错误
- image - vue/cli 重命名图片无法访问
- r - 检查一行中是否存在一个值,所有列在R中组合在一起
- java - 无法让 UiAutomator 工作 - 类不出现,UiAutomator2 驱动程序不存在
- python - 我无法在 discord.py 中发出命令
- javascript - 在给定的 unix 时间戳中添加小时 (x)
- javascript - 为什么它显示 DISHES 声明但在 App.js 中从未读取值
- java - 我的合并排序实现有什么问题?
- r - est.vmax() 中的错误:在 R 的 SDLfilter 中找不到函数“est.vmax”
- sql - 我应该从我的连接表或它加入的两个表中建立关系吗?