在我的应用程序中,我使用2个列表框,我想将所选项目从一个移动到另一个。我知道要从数据库中为列表框分配值。但我不知道如何将java文件中的字符串数组值分配给html字段。在我的'record.java'中,我有以下代码:
public class Report
{
private static String[] types = {
"Value1",
"Value2"
};
private static String[] fields = {
"number1",
"number2"
};
public static String[] getList() {
return types;
}
public static String getFieldName(String description) {
for(int i=0; i< fields.length; i++) {
if (description.compareToIgnoreCase(types[i]) ==0)
return fields[i];
}
return "";
}
}
我的'chart.jsp'文件如下:
<form method="post">
<fieldset>
<legend>Chart Data</legend>
<br/>
<br/>
<table >
<tbody>
<tr>
<td>
<select name="data" size="5" id="s">
<option value=""></option>
</select>
</td>
<td>
<input type="submit" value="<<"/>
</td>
<td>
<select name="data" size="5" id="d">
<option value=""></option>
</select></td>
</tr>
</tbody>
</table>
<br/>
</fieldset>
<input class="submit" type="submit" value="Submit" />
</form>
我是JSP的新手。任何人都可以帮我怎么做? 谢谢....
答案 0 :(得分:4)
getter方法不应该是静态的:
public String[] getList() {
return types;
}
Report
的实例应该放在servlet的doGet()
方法的请求范围中:
Report report = loadItSomehow();
request.setAttribute("report", report);
request.getRequestDispatcher("page.jsp").forward(request, response);
通过这种方式,它将在JSP EL中以${report}
的形式提供,列表以${report.list}
的形式提供。您可以使用JSTL c:forEach
迭代数组或List
。
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<select name="types" size="5">
<c:forEach items="${report.list}" var="type">
<option value="${type}">${type}</option>
</c:forEach>
</select>
请注意,您不应该为独立的输入元素指定相同的名称。