我发现这个post显示了如何将多个复选框选择传递给另一个JSP页面,但它对我不起作用。当我尝试获取所选值时,我得到:
选中复选框:[Ljava.lang.String; @ 3f3fbd
这是我的两页(温柔,这是我第一次尝试JSP!)
createSHAREfile.jsp基本上运行查询以查找尚未处理的所有术语,并在其旁边显示每个术语的复选框:
<title>Create SHARE Files</title>
</head>
<body>
<jsp:include page="../menu/header.jsp" flush="false" />
<form name='SelectSHARETerms' method='post' action="SHAREProcessing.jsp">
<fieldset><legend>Select Terms to Process for SHARE</legend>
<table align='left'>
<% String termDetail = "", currDate = "";
currentDateTime datetime = new currentDateTime();
datetime.setCurrDate();
currDate = datetime.getCurrDate();
java.sql.Date todayDate = java.sql.Date.valueOf(currDate);
Terms terms = new Terms();
ArrayList<Terms.termsTable> termsObjList = new ArrayList<Terms.termsTable>();
terms.setTermsSql("Select * from Terms where TermDate <= '" + currDate + "' AND VoucherProcessDate Is Null");
boolean indicator = terms.setListOfTerms();
if (indicator == true) {
int size = terms.getListSize();
termsObjList = terms.getTermsList();
for (int i=0; i<size; ++i) {
Terms.termsTable eachTerm = (Terms.termsTable)termsObjList.get(i);
java.sql.Date termDate = eachTerm.TermDate;
%>
<tr><td><input type=checkbox name=SelectedTermDate id='SelectedTermDate<%=i%>' value="<%=i%>"><%=termDate %></td></tr>
<%
}
}
%>
<tr><td align='center'><input type='submit' value='Submit'></input></td></tr>
</table>
</fieldset>
</form>
</body>
</html>
按下提交按钮后,我调用SHAREProcessing.jsp。现在我想在这个页面上做的就是显示用户选择了哪个termdates,这样我就可以将它们用作Java类的参数,这将创建所选术语的文件:
<title>SHARE Processing</title>
</head>
<body>
<jsp:include page="../menu/header.jsp" flush="false" />
<table width='50%' align='center' border='1'>
<% String[] SelectedValues = request.getParameterValues("SelectedTermDate");
System.out.println("checked boxes: " + SelectedValues);
%>
</body>
</html>
这里是我试图使用其他帖子中显示的代码,但它不起作用:(
感谢您的帮助! 莱斯利
答案 0 :(得分:3)
您正在尝试使用System.out.println打印整个字符串数组,因此您就可以了。它可能工作正常。
试试这个:
System.out.println("checked boxes:");
for (int i = 0; i < SelectedValues.length; ++i)
System.out.println(" " + SelectedValues[i]);
另外,我求求你:在业余时间,找出一个现代的Web框架(有数以万计的Java),并努力摆脱在JSP文件中编写Java的痛苦世界。
答案 1 :(得分:1)
您只是面对默认值Object#toString()
。
要么只是循环并打印每个项目,要么使用Arrays#toString()
。这是一个SSCCE:
package com.stackoverflow.q2426380;
import java.util.Arrays;
public class Test {
public static void main(String... args) {
String[] array = {"foo", "bar" , "waa"};
System.out.println(array); // [Ljava.lang.String;@addbf1
String arrayAsString = Arrays.toString(array);
System.out.println(arrayAsString); // [foo, bar, waa]
}
}
那就是说,这个问题实际上与JSP无关。这只是一种视图技术。问题在于基本的Java代码 - 你在错误的地方,在JSP文件而不是Java类中编写。我非常赞同在JSP文件中编写原始Java代码是不良做法的评论。 Start learning Servlets