我有一个JSP页面,它构建了一个字符串列表。您可以添加到列表并清除列表。我在页面顶部有一个scriptlet,用于解释提交操作(add vs clear)并实际执行操作。有没有办法进一步减少scriptlet代码?我需要创建自定义标签吗?这是代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<jsp:useBean id="users" class="java.util.ArrayList" scope="session"/>
<%
String action = request.getParameter("action");
if ("Clear".equals(action)) {
users.clear();
} else {
String name = request.getParameter("name");
if (name != null && !name.isEmpty()) {
users.add(name);
}
}
%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>User List</title>
</head>
<body>
<h1>User List</h1>
<form method="post" action="Tag.jsp">
<label for="name">Name</label>
<input id="name" type="text" name="name"/>
<input type="submit" value="Add" name="action"/>
<c:if test="${not users.isEmpty()}">
<input type="submit" value="Clear" name="action"/>
</c:if>
</form>
<ul>
<c:forEach var="user" items="${users}">
<li>${user}</li>
</c:forEach>
</ul>
</body>
</html>
答案 0 :(得分:1)
我继续前进并将逻辑移动到Servlet,后者充当控制器。这似乎比自定义标签更有意义。
答案 1 :(得分:0)
没有标准的jstl taglibs。您必须创建自己的taglib,或谷歌寻找其他解决方案。
在这里查看标准的jstl taglib:http://download.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/index.html