action中关键代码:
HttpServletRequest request =ServletActionContext.getRequest();
request.setAttribute("username", "username_request");
Map sessionMap =ServletActionContext.getContext().getSession();
sessionMap.put("username", "username_session");
ServletContext sc = ServletActionContext.getServletContext();
sc.setAttribute("username", "username_application");
显示页面:
使用struts标签需要引入:<%@ taglib uri="/struts-tags" prefix="s"%>
<%@pagelanguage="java"pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="description"content="This is my page">
</head>
<body>
<!--获取request -->
jstl取request值:${requestScope.username}<br>
<!-- struts2标签访问: -->
struts取request值:<s:property value="%{#request.username}" /><br>
<!--获取session -->
jstl取session值:${sessionScope.username}<br>
struts取session值:<s:property value="%{#session.username}" /><br>
<!-- 获取appliaction -->
jstl取application值:${applicationScope.username}<br>
struts取appliaction值:<s:property value="%{#application.username}"/>
</body>
</html>
使用jstl标签需引入:<%@tagliburi="http://java.sun.com/jstl/core_rt" prefix="c"%>
使用用:request对象:
action中:
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("username", "username_request");
request.setAttribute("listAll", DAOFactory.getPersonDAOInstance().queryAll());
jsp中:
${requestScope.username}<!--一个对象-->
使用struts自定义标签获取:
<!--集合对象-->
使用jstl获取:
<c:forEach items="${requestScope.listAll}"var="list">
<tr>
<td align="center">${list.id}</td><!-- 输出id -->
<td>${list.name}</td><!-- 输出name -->
<td>${list.password}</td><!-- 输出password -->
<td align="center"><a href="test!queryById?id=${list.id}">修改</a></td>
<td align="center"><a href="test!delete?id=${list.id}">删除</a></td>
</tr>
</c:forEach>
使用session对象:
action中:
HttpSession session_user = ServletActionContext.getRequest().getSession();
//把登录的用户名保存到session中
session_user.setAttribute("name",name);
jsp中:
${sessionScope.name}
使用context对象
action中:
ServletContextsc = ServletActionContext.getServletContext();
sc.setAttribute("username", "username_application");
jsp中:
<!-- 获取appliaction -->
${applicationScope.username}
struts作为成熟的框架当然有自己的异常处理机制,在strtus.xml的配置文件中可以通过全局异常处理机制和局部异常
处理机制来处理action中遇到的异常。全局异常配置在package内部,而局部异常处理机制配置在action里面即可。
注意内部的配置顺序报错时需要调整。
<global-Exception-mappings>
<Exception-mapping exception="java.sql.SQLException" result="sql">通过sql在action中配置result的返回页面
</global-Exception-mappings>
<package>
<action>
<result name="sql">/exception.jsp</result>
</action>
</package>
exception.jsp在异常页面可以打印出异常信息和异常堆栈信息
<%taglib prefix="s" url="/struts-tags"/>
<div>
<s:property value="exception.message"/>
<s:property value="exceptionStack"/>
</div>