一 前台测试页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title></title>
<style>
h3{font-size: 18px;color: black;}
h2{font-size: 20px;color: black;}
</style>
<script type="text/javascript">
</script>
<script type="text/javascript">
var allPage=${requestScope.commPage.allPages};
var Id=${requestScope.commPage.lists[0].tablename.scId};
</script>
</head>
<body>
<input type="hidden" value="${requestScope.numC}" id="mesg">
<c:set var="abooutL" value="${requestScope.aboutL}"></c:set>
<c:set var="num" value="0"></c:set>
<div class="header_full w_100">
<div class="fenban">您的屏幕分辨率过小,可能导致某些内容无法正常显示!<a href="javascript:void(0)"><font class="header_close">关 闭</font></a></div>
</div>
<!-- header | end -->
<p>
AAAAAAAAAAAAAAAAAAAAAAAAA
</p>
<p>
<a href="<%=basePath%>findProductJsp.action?erTitleId=20">DDDDDDDDDDDDDDDDDDDDDD</a>
</p>
<p>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</p>
<p>
${requestScope.mesg2}
</p>
<p>
${requestScope.commPage}
</p>
<p>
${requestScope.erTitleId}
</p>
<p>
YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY
</p>
</body>
</html>
二 Struts2配置文件
......
<action name="findProductJsp" class="action.qianCommAction" method="findProductJsp">
<result>/page/xxxxxx/Product/zmOpsys.jsp</result>
<result name="input">/page/xxxxxx/Product/zmOpsys.jsp</result>
</action>
......
三 Action类代码
qianCommAction.java
......
public String findProductJsp() throws Exception{
try{
String hql="from tablename s where s.xxxx.erId="+erTitleId+" order by s.createTime desc";
commPage=coservice.findCommPageByhql(hql, null, currPage, 6);
List<Spgsctitle> tList=coservice.searchAll(tablename.class);
List aboutL=coservice.findByProperty("tablename", "tablename.fiTitleId", 4);
request.put("numC", numC);
request.put("aboutL", aboutL);
request.put("tList", tList);
request.put("commPage", commPage);
request.put("mesg2", "findProductJsp() Success!");
return SUCCESS;
} catch (Exception e) {
request.put("mesg", "系统出现异常,请稍后再试!");
e.printStackTrace();
return INPUT;
}
}
......
四 执行效果
五 语言描述一下Struts2的基本执行流程
页面第一次载入时,或者刷新页面,以下URL:
http://IP:端口/项目名称/findProductJsp.action?erTitleId=20
被发送到服务器端;
服务器端首先查找web.xml,发现配置了Struts2;然后Struts2模块接收此请求,查找Struts2的配置文件,发现应该由 qianCommAction 这个Action来处理请求,并且执行的是qianCommAction中的findProductJsp方法;于是流程转入findProductJsp方法;
在findProductJsp方法中,因为测试,不管是否从数据库中取到数据,都对客户端返回一个字符串:
request.put("mesg2", "findProductJsp() Success!");
在前台页面显示mesg2,如果显示出"findProductJsp() Success!",表明Struts2的流程是通的,findProductJsp() 方法被Struts2自动调用执行;以后只要在findProductJsp() 方法中从数据库取到数据,并用request.put(XXX,XXX)返回前台,即可在前台页面中显示从数据库中取到的数据。