gpt4 book ai didi

java - getParameterValues 有时会从隐藏输入中返回 null

转载 作者:行者123 更新时间:2023-11-29 03:47:40 24 4
gpt4 key购买 nike

我有一个网站,当用户提交表单时,我在 .jsp 文件中使用了表单,操作转到 servlet,将数据插入数据库。有时它工作正常,没有任何问题,有时甚至用户提交了没有插入数据库的表单,并在第 154 行抛出 NullPointerException。

org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for 
servlet [NewServlet] in context with path [] threw exception
java.lang.NullPointerException
at org.example.test.NewServlet.processRequest(NewServlet.java:154)

索引.jsp

<form action="NewServlet" method="post">
<table>
<tbody>
<tr>
<td><sql:query dataSource="${snapshot}" var="subjects1">
SELECT * FROM glf2 ORDER BY RAND()LIMIT 1
</sql:query>
<c:set var="comments_m1" value="${subjects1.rows[0]}"/>
${comments_m1.comment_message}
</td>
</tr>
<tr>
<td><sql:query dataSource="${snapshot}" var="subjects2">
SELECT * FROM egy ORDER BY RAND()LIMIT 1
</sql:query>
<c:set var="comments_m2" value="${subjects2.rows[0]}"/>
${comments_m2.comment_message}
</td>
</tr>
</tbody>
</table>
<input type="hidden" name="com" value="${comments_m1.comment_message}"/>
<input type="hidden" name="com" value="${comments_m2.comment_message}"/>
<input type="submit" value="submit">
</form>

从数据库中选择并显示在屏幕上的评论消息,用户需要选择一些选项,然后将评论消息和用户选项发送到servelt,以插入到数据库表中。

newservlet.java 根据日志文件getParametersValues 中的问题

try (PrintWriter out = resp.getWriter()) {
comment1= req.getParameterValues("com");
for(int z=0; z<comment1.length;z++)
comment[z] = new String(comment1[z].getBytes("ISO-8859-1"),"UTF-8");

任何人都可以告诉我如何解决这个问题。

最佳答案

您的查询不一定会返回 comment_message 不为空的记录。

因此,例如,您可能必须添加空检查。

if (comment1 != null) {
for (int z=0; z<comment1.length;z++)
comment[z] = new String(comment1[z].getBytes("ISO-8859-1"),"UTF-8");
}

关于java - getParameterValues 有时会从隐藏输入中返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45906439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com