在JSP页面无法显示List集合.类似${list.size()},${user.getId()}的解决方法

jsp页面上使用<c:if test="${list.size()>10 }"></c:if>,报错

The function size must be used with a prefix when a default namespace is not specified

还有${user.getId()},也会报错

The function getId must be used with a prefix when a default namespace is not specified

以上问题,在Tomcat6及以下,问题比较明显。在Tomcat7中就没有问题,不会报错。这是tomcat版本冲突导致。

解决方法:

在jsp页面中加入<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

同时保证你的web项目中导入了要引入JSTL的CORE核心标签库与FN的标签库。其中导入standard.jar,

主要是因为standard-1.1.2\META-INF中有fn.tld。

把${list.size()>10} 统一改为 ${fn:length(list)>10} 这里要注意了(fn:length 不要写成了fn.length)。

${user.getId()}改为普通的${user.id}。

这样改了以后,tomcat各版本就兼容了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我将给出实现这些功能的示例代码。 (1)创建user表 在MySQL数据库中创建一个名为user的表,包含idusername、password等字段,可以使用如下SQL语句: ``` CREATE TABLE user ( id INT(11) NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password VARCHAR(50) NOT NULL, PRIMARY KEY (id) ); ``` (2)编写user表的JavaBean 在Java Web应用程序中,可以创建一个User类,包含与user表中相同的字段,并提供对应的getter和setter方法。示例代码如下: ``` public class User { private int id; private String username; private String password; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ``` (3)实现登录功能 下面是实现登录功能的示例代码: LoginServlet.java ``` public class LoginServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 检查用户名和密码是否正确,省略此部分代码 // 将用户信息保存在Session中 User user = new User(); user.setId(1); user.setUsername(username); request.getSession().setAttribute("user", user); // 重定向到主页 response.sendRedirect("index.jsp"); } } ``` login.jsp ``` <form action="login" method="post"> <label>Username:</label> <input type="text" name="username" /><br /> <label>Password:</label> <input type="password" name="password" /><br /> <input type="submit" value="Login" /> </form> ``` (4)实现index.jsp页面用于显示用户名 下面是实现index.jsp页面的示例代码: index.jsp ``` <%-- 检查用户是否已登录 --%> <c:if test="${not empty sessionScope.user}"> Welcome, ${sessionScope.user.username}! <a href="userList.jsp">User Info</a> <a href="logout">Logout</a> </c:if> <c:if test="${empty sessionScope.user}"> <a href="login.jsp">Login</a> </c:if> ``` (5)userList页面以table的形式显示用户信息 下面是实现userList.jsp页面的示例代码: userList.jsp ``` <%-- 获取所有用户信息 --%> <% List<User> userList = new ArrayList<>(); // 从数据库中获取用户信息,省略此部分代码 %> <%-- 显示用户信息 --%> <table> <tr> <th>ID</th> <th>Username</th> <th>Password</th> <th>Operation</th> </tr> <c:forEach items="${userList}" var="user"> <tr> <td>${user.id}</td> <td>${user.username}</td> <td>${user.password}</td> <td> <a href="editUser.jsp?id=${user.id}">Edit</a> <a href="deleteUser?id=${user.id}">Delete</a> </td> </tr> </c:forEach> </table> ``` (6)添加用户、编辑用户、删除用户 下面是实现添加用户、编辑用户、删除用户的示例代码: AddUserServlet.java ``` public class AddUserServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 将用户信息保存到数据库中,省略此部分代码 // 重定向到用户列表页面 response.sendRedirect("userList.jsp"); } } ``` editUser.jsp ``` <%-- 获取要编辑的用户信息 --%> <% int id = Integer.parseInt(request.getParameter("id")); User user = new User(); // 根据id从数据库中获取用户信息,省略此部分代码 %> <%-- 显示用户编辑界面 --%> <form action="updateUser" method="post"> <input type="hidden" name="id" value="${user.id}" /> <label>Username:</label> <input type="text" name="username" value="${user.username}" /><br /> <label>Password:</label> <input type="password" name="password" value="${user.password}" /><br /> <input type="submit" value="Save" /> </form> ``` UpdateUserServlet.java ``` public class UpdateUserServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.parseInt(request.getParameter("id")); String username = request.getParameter("username"); String password = request.getParameter("password"); // 更新用户信息,省略此部分代码 // 重定向到用户列表页面 response.sendRedirect("userList.jsp"); } } ``` DeleteUserServlet.java ``` public class DeleteUserServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id = Integer.parseInt(request.getParameter("id")); // 删除用户信息,省略此部分代码 // 重定向到用户列表页面 response.sendRedirect("userList.jsp"); } } ``` 以上就是实现Java Web应用中用户登录、显示用户信息和进行用户管理的示例代码。需要根据具体的业务需求进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值