如何在单个 backing bean 属性中收集多个相关属性?

发布于 2024-12-18 08:47:34 字数 1309 浏览 0 评论 0原文

有没有一种方法可以替换支持 bean 中的这个

private int room1ad
private int room1ch
private int room1ch1
private int room1ch2
private int room1ch3
private int room1ch4
// getters & setters

以及视图中的这个

<h:form>
  <h:selectOneMenu value="#{hotelsController.room1ad}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  <h:selectOneMenu value="#{hotelsController.room1ch}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  <h:selectOneMenu value="#{hotelsController.room1ch1}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
 </h:selectOneMenu>
 ......
 </h:form>

这看起来不错,但我在一个支持 bean 中有 10 个房间。

我在backing bean中想到了类似的东西

//BB
private Room room1

,并且视图基本相同,但是它会在提交后创建对象 因此,它的工作方式不是让 BB 中的每个房间有 6 个整数,而是只在其中包含 x Room 类,并且 XHTML 表单将直接生成 POJO,而不是单独访问每个 int

Is there a way to replace this in backing bean

private int room1ad
private int room1ch
private int room1ch1
private int room1ch2
private int room1ch3
private int room1ch4
// getters & setters

and this in the view

<h:form>
  <h:selectOneMenu value="#{hotelsController.room1ad}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  <h:selectOneMenu value="#{hotelsController.room1ch}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  <h:selectOneMenu value="#{hotelsController.room1ch1}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
 </h:selectOneMenu>
 ......
 </h:form>

This doesn't look so bad, but I have 10 rooms in one backing bean.

I thought about something like this in backing bean

//BB
private Room room1

And the view basically the same, but it would create object after submition
so the way it works instead of having 6 ints for each room in BB I would only have x Room classes inside and XHTML form would make directly POJO instead of accessing individually each int.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

抚你发端 2024-12-25 08:47:34

EL 支持 POJO 上的列表和属性,因此您可以轻松使用它:

public List<Room> getRooms();

和 xhtml:

<ui:repeat value="#{hotelsController.rooms}" var="room">
  <h:selectOneMenu value="#{room.ad}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  .
  .
</ui:repeat>

EL supports lists and properties on POJOs, so you could easily use it:

public List<Room> getRooms();

and xhtml:

<ui:repeat value="#{hotelsController.rooms}" var="room">
  <h:selectOneMenu value="#{room.ad}">
      <f:selectItem itemLabel="1" itemValue="1"/>
      <f:selectItem itemLabel="2" itemValue="2"/>
      <f:selectItem itemLabel="3" itemValue="3"/>
  </h:selectOneMenu>
  .
  .
</ui:repeat>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文