Java 是否可以从通用对象列表在webapp中生成表单字段?
情况如下: 我们希望有一个搜索页面,它接收属性对象的有序列表,并根据它们的“类型”(文本输入、下拉列表、复选框)以适当的方式生成和显示它。为了过滤结果,我们还需要处理这些字段的值。我不知道我们如何才能做到这一点,有什么想法/解决方案吗?Java 是否可以从通用对象列表在webapp中生成表单字段?,java,html,jsp,struts2,Java,Html,Jsp,Struts2,情况如下: 我们希望有一个搜索页面,它接收属性对象的有序列表,并根据它们的“类型”(文本输入、下拉列表、复选框)以适当的方式生成和显示它。为了过滤结果,我们还需要处理这些字段的值。我不知道我们如何才能做到这一点,有什么想法/解决方案吗? 这适用于struts2支持的java Web应用程序。是的,这是可能的。我不熟悉struts,但我想不会那么难。一些伪java代码可以帮助您入门: private void init() { for(Attribute a : attributes) {
这适用于struts2支持的java Web应用程序。是的,这是可能的。我不熟悉struts,但我想不会那么难。一些伪java代码可以帮助您入门:
private void init() {
for(Attribute a : attributes) {
SomeWebComponent c = createComponent(a);
components.put(a, c);
}
renderComponents(components.values());
}
private SomeWebComponent createComponent(Attribute a) {
if(a.getType().equals("text") return createTextInput();
else if(a.getType().equals("list") return createListInput(a.getItems());
...
}
private void performSearch() {
for(Attribute a : attributes) {
SomeWebComponent c = components.get(a);;
searchValues.put(a, c.getValue());
}
doSearch(searchValues);
}
虽然这是可能的,但根据我的经验,这几乎总是一个坏主意。从用户体验的角度来看,按照您描述的方式使用完全动态的GUI通常不是一个好主意。如果你正在开发的屏幕是相对静态的,你通常最好只是硬编码布局部分。我以前也经历过这种情况,最终决定回到静态布局。