在我的struts表单中,我有几个具有相同名称的字段(文本字段)。 它们都携带相同的信息(通过js更改事件)。 但是,在操作类中,它们将以逗号分隔值而非值一次导入。
以下是item.jsp:
的摘录<s:select label="Part of speech" key='item.pos' list=.../>
<div class="verb"><s:textfield key='item.subitem.root'/></div>
<!-- hidden if item.pos!=verb -->
.
.
.
<div class="noun"><s:textfield key='item.subitem.root'/></div>
<!-- hidden if item.pos!=noun -->
上述文本字段出现多次,并根据词性显示或隐藏。所有文本字段都具有相同的键(或名称),因为它们都指向对象“项目”中的相同字段。使用JS函数,它们内部都具有相同的值。
我的问题是:
当来自jsp的字符串传递给action类时,'item'的'subitem'中生成的'root'字段将所有值以逗号分隔。
也就是说,假设我输入'xxx'作为根,item.getSubitem()。getRoot()将导致:'xxx,xxx,xxx,xxx,xxx,xxx'。
如果我跳过统一所有值的JS函数,它将导致:',, xxx ,,,'。
任何想法如何解决这个问题?
答案 0 :(得分:1)
使用具有相同名称的字段需要考虑一些因素:
如果所有字段都具有相同的值,则表示您只需要将其中一个字段发送到服务器,您可以考虑重命名其他字段,也可以将其他字段禁用。禁用隐藏的输入或输入将阻止浏览器发送它。
如果您需要在服务器上拥有所有字段(输入)的值,则需要简单地定义索引属性,如下所示:
private String[] root;
public String[] getRoot() {
return root;
}
public void setRoot(String[] root) {
this.root = root;
}
答案 1 :(得分:1)