JSP 动作标签:动态控制页面的快捷指令
JSP 动作标签通过 XML 风格的标签实现页面动态行为,是替代脚本代码的标准化方案。
- 核心动作标签
标签 功能说明 示例代码
jsp:include 动态包含页面(运行时合并) <jsp:include page="header.jsp"/>
jsp:forward 请求转发到新资源 <jsp:forward page="error.jsp"/>
jsp:param 传递参数(配合 include/forward)
<jsp:include page="profile.jsp">
<jsp:param name="userId" value="1001"/>
</jsp:include>
| jsp:useBean | 创建或获取 JavaBean |
<jsp:useBean id="user" class="com.example.User" scope="session"/>
| jsp:setProperty | 设置 Bean 属性 |
<jsp:setProperty name="user" property="name" value="Alice"/>
| jsp:getProperty | 输出 Bean 属性 |
<jsp:getProperty name="user" property="email"/> - 对比脚本代码
传统脚本方式:
<%
User user = (User) session.getAttribute("user");
if (user == null) {
user = new User();
session.setAttribute("user", user);
}
%>
<%= user.getName() %>
动作标签方式:
<jsp:useBean id="user" class="User" scope="session"/>
<jsp:getProperty name="user" property="name"/>
优势:
代码更简洁易读
避免直接操作 session 等底层对象
支持自动类型转换
- 实际应用场景
模块化页面组件:
<jsp:include page="${theme}/navbar.jsp"/>
表单数据绑定:
<jsp:useBean id="formData" class="FormBean" scope="request"/>
<jsp:setProperty name="formData" property="*"/>
权限校验拦截:
<% if(!isAdmin) { %>
<jsp:forward page="no-permission.jsp"/>
<% } %>
- 注意事项
作用域管理:明确指定 scope(page/request/session/application)