java - 使用 getParameterValues 将日期从 jsp 传递到 servlet

标签 java jsp date datetime servlets

我在 servlet 中从 JSP 传递值时出错。

JSP 代码:

<table>                 
<tr>
    <td>Day</td>
    <td>Start</td>
    <td>End</td>
    <td>Date</td>
    <td>&nbsp;</td>                                                          
</tr>               
<tr>
   <td><select name="availableDay">  
       <!--Listing days-->                                                                                         
       </select></td>
   <td><input type="time"   name="availableStart"/></td>
   <td><input type="time"   name="availableEnd"/></td>
   <td><input type="date"   name="availableDate" /></td>
   <td><input type="button" class="add" name="action" value="Add More"</td>
</tr>
</table>

我想将 availableDate 传递给 servlet。仅供引用,JSP 中的行是动态生成的。因此,我通过使用 []。我的 servlet 代码:

  public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, java.io.IOException {

  String[] presentationID = request.getParameterValues("selectavailability");
  String[] availableDay =  request.getParameterValues("availableDay"); 
  String[] availableStart =  request.getParameterValues("availableStart");
  String[] availableEnd =  request.getParameterValues("availableEnd");
  String[] availableDate = request.getParameterValues("availableDate");  

  SimpleDateFormat availDate = new SimpleDateFormat("dd-MM-yyyy");
  Date chosenDate = availDate.parse(availableDate);// THIS IS WHERE I AM GETTING ERROR

  try {

        if(availableDay != null && availableStart != null && availableEnd != null)
        {
          for (int i = 0; i < availableDay.length; i++) 
          {

            AvailabilityBean available = new  AvailabilityBean(); 
            available.setLecturerID(request.getParameter("lecturerID"));
            available.setAvailableDay(availableDay[i]);
            available.setAvailableStart(availableStart[i]);
            available.setAvailableEnd(availableEnd[i]);
            available.setAvailableDate(availableDate[i]); //EFFECTED THIS LINE TOO

            available = AddAvailableDAO.addavailable(available);


           }
        }

     }
                   response.sendRedirect("addAvailability.jsp");                
 }
catch (Throwable theException) {
            System.out.println("hhhhhhh"+theException);
        }
    }

对于额外的 AvailabilityBean:

    private String availableID;
    private String lecturerID;
    private String availableDay;
    private String availableStart;
    private String availableEnd;
    private Date availableDate;
    private String presentationID;

错误:不兼容的类型:String[] 无法转换为 String。

你能告诉我我的错误在哪里吗?我该如何解决这个问题?谢谢

最佳答案

这是您的 availableDate 变量,它是一个 String 数组。

 String[] availableDate = request.getParameterValues("availableDate");

现在,您正在使用 SimpleDateFormat 类将您的 String 数据格式化为 Date

此处 parse(String text) 将采用 String 参数,而不是 String[] (数组)类型。

 SimpleDateFormat availDate = new SimpleDateFormat("dd-MM-yyyy");
  Date chosenDate = availDate.parse(availableDate);// availableDate is a String Array not a String.

因此,它会引发一个编译时错误incompatible types: String[] cannot be converted to String.

你最好试试这个

 Date chosenDate = availDate.parse(availableDate[0]); //preferred index you may pass as per your requirement.

Note:- availableDate[0] will return a String Object available at index 0.

关于java - 使用 getParameterValues 将日期从 jsp 传递到 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613353/

相关文章:

javascript - 按 T​​AB 键在相同/不同页面上显示文本框值

JavaScript 和 CSS 在我的 liferay portlet 中不起作用

php - 在 MySQL (PHP) 中插入 CURDATE() 和 CURTIME()

c# - ASP.NET MVC 为编辑和显示模式应用不同的 DisplayFormat

java - 通过单纯形法获取对象的顶点

html - 如何在jsp中显示带有标签的文本

java - 为什么 Java 字段不是多态的?

javascript - moment() 和 moment(new Date()) 的区别

java - 集群 Weblogic JMS

java - 如何设置饼图中显示的标签数量?