2010-03-11 5 views
1

Я нашел это post, который показывает, как передать несколько флажков на другую страницу JSP, но это не работает для меня. Когда я пытаюсь получить выбранные значения я получаю:Capture multiple checkbox selection JSP Параметры

проверил коробки:; (! Быть нежным, это моя первая попытка JSP) [Ljava.lang.String @ 3f3fbd

Вот мои две страницы

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> 

Вот где Я пытаюсь использовать код, показанный на другую должность, но он не работает :(

Спасибо за любую помощь! Лесли

+1

Я бы * сильно * рекомендую использовать язык выражений (EL) + сервлеты, а не старинную mishmash Java и код разметки на той же странице. –

ответ

3

Вы пытаетесь напечатать весь массив строк с System.out.println , и поэтому вы получите это. Вероятно, он работает нормально.

Попробуйте это:

System.out.println("checked boxes:"); 
for (int i = 0; i < SelectedValues.length; ++i) 
    System.out.println(" " + SelectedValues[i]); 

Кроме того, я прошу вас: в свободное время, узнать о современном веб-рамки (есть миллиард для Java) и стремиться уйти от болезненного мира кодирования Java в JSP файлы.

+0

Циллионы из которых на самом высоком пятерке в порядке, чтобы смотреть сначала (JSF, Struts2, Spring MVC, Stripes и Wicket). Не пугайте его;) – BalusC

+0

Я огромный поклонник Stripes, но я не хотел прозелитизировать. – Pointy

+0

@BalusC - это «ее» LOL @ Pointy - отличная благодарность, что помогает ... я буду смотреть на веб-фреймворк, но я не большой веб-программист здесь, просто пеон! Это делает то, что я просил (печатает 0, 1, 2), но мне действительно нужно получить значение даты, которое находится в том, что параметр должен передать это в другой запрос ... – Leslie

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-классе. Я полностью согласен с комментариями, что написание исходного кода Java в файлах JSP - это плохая практика. Start learning Servlets.