【发布时间】:2013-03-13 21:22:09
【问题描述】:
我正在创建一个使用 jsf、html、java 和 JavaDB 的网站。我的一个页面将列出许多代表客户可以选择的菜单的图像。在页面底部有一个selectManyCheckbox 与图像对应的选项。当客户选择了菜单组合时,“订购”按钮将引导客户到下一页。在此页面上列出了有关客户的其他信息(从数据库中检索),例如:Customer number、Contact name 等。除此之外,所选菜单应列在表中,并且列出的行数应与所选菜单的数量相同。我的主要问题是我想使用从selectManyCheckbox 收集的数据作为我在所选菜单字段中的输入,其余部分是从数据库中收集的(我已经完成并且它有效)。如何将值作为单独的值获取?我只能在输出文本中使用它们,而不是作为输入字段中的值。
Java 代码:
@Named
@RequestScoped
public class OrderBean implements java.io.Serializable {
private Set<String> menus = new TreeSet<String>();
public Set<String> getMenus() {
return menues;
}
public void setMenus(Set<String> newValue){
menus = newValue;
}
public SelectItem[] getMenuesItems(){
return menuesItems;
}
private static SelectItem[] menuesItems = {
new SelectItem("Menu 1"),
new SelectItem("Menu 2"),
new SelectItem("Menu 3")
};
}
JSF、HTML:
<div class="clear"></div>
<div id="frame">
<div id="frameCheckBox"><h:commandButton value="#{mld.Order}" action="Order"/>
<h:selectManyCheckbox value="#{orderBean.menus}">
<f:selectItems value="#{orderBean.menusItems}"/>
</h:selectManyCheckbox>
</div>
</div>
【问题讨论】:
-
你到底想达到什么目的?您已经在服务器端设置了
menues中的选定值,那么您想用它做什么? -
我认为这里可能存在英语语言交流问题...您的意思是项目列表吗?还是用户真的购买了几个菜单(可能是为他们的餐厅...菜单是项目列表,通常带有价格和描述/照片)
-
送货地址和日期由客户输入,但所选菜单的信息应从上一页收集并插入。然后将该信息作为注册给客户的订单发送并存储在数据库中。问题是我无法从 selectManyCheckbox 获取信息作为单个变量,在将其发送到数据库之前将其绘制到“总订单列表”中。我只能将它们作为输出(一次全部),但不能作为新字段的输入。也许我做的完全错误而且很麻烦。
-
我的想法更像是一个数组。如果此人选择了三个选项中的两个,则行数为 2,然后我可以使用 .get(index) 来收集所选的 menu1 .get(1) 和 menu2 .get(2)。在发送订单之前为客户显示的表格中。但我真的很陌生,不知道如何实现这个功能。
-
每个选定菜单应该是单独的行的原因是客户应该能够添加想要该菜单的人数(与多人开会的订单)并用于计算总价、运费和增值税。