gpt4 book ai didi

java - 如何处理JSP下拉列表错误处理

转载 作者:太空宇宙 更新时间:2023-11-04 07:50:17 25 4
gpt4 key购买 nike

我正在将数据库数据填充为下拉列表中的选项

<select name="AccountType">
<option value = "1">Please Select</option>
<c:forEach items="${UserItem}" var="AccountType">
<option value="${AccountType.getRoleId()}">${AccountType.getRoleName()}</option>
</c:forEach>
</select>

<%
if (errors.containsKey("AccountType"))
{
out.println("<span class=\"warning\">" + errors.get("AccountType") + "</span>");
}
%>

在我的 servlet 中,这是代码

protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{

logger.debug("Add User page requested");
List<User> UserItems = new UserDAO().RoleTypeList();
req.setAttribute("UserItem", UserItems);
jsp.forward(req, resp);
}

现在确定用户是否忘记选择下拉列表中的第一个选项(请选择),我尝试了此代码

long AccountType = Integer.parseInt(req.getParameter("AccountType"));
if ("1".equals(AccountType))
{
errors.put("AccountType", "Required");
}
else if (req.getParameter("AccountType") != null && !"".equals(req.getParameter("AccountType")))
{
long RoleId = Integer.parseInt(req.getParameter("AccountType"));
emsItem.setRoleId(RoleId);
}

当我点击提交按钮时,什么也没发生。我的下拉列表项目也消失了,所以我只需要返回页面。我该如何解决这个问题?

最佳答案

问题出在这两行:

long AccountType = Integer.parseInt(req.getParameter("AccountType"));
if ("1".equals(AccountType))

Integer.parseInt() 返回一个 int。你为什么要把它存储成 long 呢?然后,一旦获得这个 long,就测试该 long 是否等于字符串 "1"。 long 永远不会等于 String,因为它们甚至不是同一类型。

要么使用

int accountType = Integer.parseInt(req.getParameter("AccountType"));
if (accountType == 1)

String accountType = req.getParameter("AccountType");
if ("1".equals(accountType))

请遵守 Java 命名约定:变量以小写字母开头。

关于java - 如何处理JSP下拉列表错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14605769/

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