摘要: http://java.chinaitlab.com/List_213_11.html
1.介绍
(1)Struts2相当于是servlet,和servelt不同的是当提交到struts.xml中之后,通过aciton标签就可以直接调用想用的方法,减少了代码量。
(2)在ActionSuport中set方法是注入,即是set方法是获取jsp页面中传过来的值,get方法是是向jsp页面发送值,值得一提的是有了get和set方法之后就取代了servlet中的
request.getParameter("");和重定向的操作。在这里要重点理解get和set方法的使用。
(3)在struts2分页中set和set方法更能突出它的用法。
2.下面来看实例把!
(1)首先访问这个页面时就应该查找出nowPage为1信息,所以在action中要判断nowPage是否为空。
在jsp页面的分页判断可以写为:
<p>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=1">首页</a>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage-1<=1?1:nowPage-1}">上一页</a>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage+1>=page.countPage?page.countPage:nowPage+1}">下一页</a>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${page.countPage}">末页</a>
</p>
当然可以在Page中封装好nowPage的判断,在这里主要介绍action.
当点击下一页的时候会连接到findAllPro.action这个struts.xml中的action,
struts.xml 文件为:
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="pro" namespace="/" extends="struts-default">
<action name="findAllPro" class="cn.csdn.hr.action.ProvinceAction" method="findAll">
<result>./list.jsp</result>
</action>
</package>
</struts>
从struts.xml中可以看出findAllPro连接到的是cn.csdn.hr.action.ProvinceAction下的findAll方法,我们去找ProvinceAction,为:
// 分页查询
public String findAll() {
if ("".equals(nowPage) || nowPage == null) {
this.nowPage = 1;
}
System.out.println(nowPage + "==============");
page = new PageWhere("Province", nowPage, "where 1<2");
// page= page.getDatas();
return SUCCESS;
}
因为要返回到jsp页面,所以要写一个get方法来把page传到jsp页面中:
// 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西
private PageWhere page;
public PageWhere getPage() {
return page;
}
这样就把当前页的信息传到了jsp中,但是在分页的时候因为nowPage是jsp和struts2来回传的值,并且是一个变量,所以设置一个属性nowPage,生成get和set方法,来获取nowPage和把修改的nowPage传到jsp中,整个ProvinceAction页面为:
package cn.csdn.hr.action;
import cn.csdn.hr.HibernateUtil.PageWhere;
import cn.csdn.hr.domain.Province;
import cn.csdn.hr.service.ProvinceService;
import cn.csdn.hr.service.ProvinceServiceImpl;
import com.opensymphony.xwork2.ActionSupport;
public class ProvinceAction extends ActionSupport {
/**
* get方法是向jsp页面中传值 set方法向获取jsp页面的值
*/
private static final long serialVersionUID = 1L;
private ProvinceService provinceService = new ProvinceServiceImpl();
private Integer id;
private String name;
public ProvinceAction() {
super();
}
// 通过页面注入进来的。id的名称一定要和表单中 的一致
public void setId(Integer id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
// 接收传过来的nowPage
private Integer nowPage;
public void setNowPage(Integer nowPage) {
this.nowPage = nowPage;
}
public Integer getNowPage() {
return nowPage;
}
// 得到page的值 ,并把得到的值放到page中,page可以获取所有的东西
private PageWhere page;
public PageWhere getPage() {
return page;
}
// 分页查询
public String findAll() {
if ("".equals(nowPage) || nowPage == null) {
this.nowPage = 1;
}
System.out.println(nowPage + "==============");
page = new PageWhere("Province", nowPage, "where 1<2");
// page= page.getDatas();
return SUCCESS;
}
}
整个jsp页面为:
<body>
<div align="center">
<h3>
省市操作
</h3>
<table border="1px" cellpadding="0px" cellspacing="0px" width="300px">
<tr>
<th>
编号
</th>
<th>
省名
</th>
<th>
操作
</th>
</tr>
<tbody>
<c:forEach items="${page.datas}" var="entity">
<tr align="center">
<td>
${entity.id}
</td>
<td>
${entity.name}
</td>
<td>
<a href="${pageContext.request.contextPath}/insert.jsp">添加</a>
<a href="${pageContext.request.contextPath}/delPro.action?id=${entity.id}">删除</a>
<a href="${pageContext.request.contextPath}/updatePro.action?id=${entity.id}">编辑</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<br/>
<div>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=1">首页</a>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage-1<=1?1:nowPage-1}">
private PageWhere page;
public PageWhere getPage() {
return page;
}
// 分页查询
public String findAll() {
if ("".equals(nowPage) || nowPage == null) {
this.nowPage = 1;
}
System.out.println(nowPage + "==============");
page = new PageWhere("Province", nowPage, "where 1<2");
// page= page.getDatas();
return SUCCESS;
}
}
整个jsp页面为:
<body>
<div align="center">
<h3>
省市操作
</h3>
<table border="1px" cellpadding="0px" cellspacing="0px" width="300px">
<tr>
<th>
编号
</th>
<th>
省名
</th>
<th>
操作
</th>
</tr>
<tbody>
<c:forEach items="${page.datas}" var="entity">
<tr align="center">
<td>
${entity.id}
</td>
<td>
${entity.name}
</td>
<td>
<a href="${pageContext.request.contextPath}/insert.jsp">添加</a>
<a href="${pageContext.request.contextPath}/delPro.action?id=${entity.id}">删除</a>
<a href="${pageContext.request.contextPath}/updatePro.action?id=${entity.id}">编辑</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<br/>
<div>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=1">首页</a>
<a href="${pageContext.request.contextPath}/findAllPro.action?nowPage=${nowPage-1<=1?1:nowPage-1}">
相关推荐
使用ireport和struts2进行报表设计的简单示例,生成普通报表和饼图、柱状图。java工程的lib里包含丰富的jar包,且很多都是从各个网站下载的最新版本,文件夹内还包含一些ireport和jasperreport文档,适合刚入门学习...
struts2枚举值转换示例。 包括一个自定义枚举值转换器, 一个自定义日期值转换器。 需要用struts2处理枚举值的朋友可以试一下。 包括所有需要的jar包。
包括一个最简单的struts2入门示例,导入项目即可运行。 还有struts-2.3.24-all.zip即所有jar包,官方示例,官方文档。(除struts2-rest-showcase.war,struts2-showcase.war这两个文件,为了保证小于60m)
真是不好意思,后来发现Dao层注入是在接口,接口实现类完全没必要要了,但是...SSM(struts2+spring3+mybatis)整合示例, 在网上实在找不到现成的,用了2天时间折腾了一个,保证能用....看在这么辛苦的份上,多收点分 嘿嘿....
1.struts2_1 struts2 基本配置 2.struts2_2 validationl,ModelDriven,properties 3.struts2_interceptor 拦截器,自定义拦截器 4.struts2_log4j 5.struts2_spring struts spring 整合 以上功能包含完整示例代码 ...
3.2. Struts2的Action调用业务逻辑 - 19 - 3.2.1. 登录Action--OpenIDLoginAction - 19 - 3.2.2. 进入的Action—FirstPageAction - 20 - 3.3. JSP页面 - 20 - 3.4. 运行示例 - 21 - 3.4.1. 登录 - 21 - 3.4.2. ...
这是一个struts2+jfreechart的完整源码程序。tomcat运行后可看到简单的饼形图和柱状图。运行DemoTest/RealTimeChart可看到即时曲线图示例。本来这些应资源共享,可下载别人好东西时需要积分,所以设置为1分。希望...
本示例是使用JavaWeb技术实现一个简单的图片管理与分享系统,其中主要功能如下: ...JavaEE、JSP、Struts2、Hibernate、JavaBean 本项目开发环境为: Intellij IDEA 2016.3 Tomcat 8 JDK 1.8 MySQL 5.5
本书200mb,分的压缩包较多。请全部下载后解压缩。。。。。。。 。。。。。。(part 13)。。。。。 Struts 2权威指南--基于WebWork核心的MVC开发(完整版) 本书所介绍的Struts 2已经完全超出了Struts 1框架...
笔者在介绍Struts 2框架时,既照顾到Struts 2初学者的能力,对每个知识点都给出简单的快速上手的示例;同时也考虑到开发者在日后开发中可能遇到的问题,详细讲解了每个知识点的各种用法,本书覆盖到Struts 2近80%的...
struts2文件上传。 包括一个上传单个文件的示例, 和一个多文件上传的示例, 包含所需要的所有jar文件。
本书200mb,分的压缩包较多。请全部下载后解压缩。。。。。。。 。。。。。。(part 05)。。。。。 Struts+2权威指南--基于WebWork核心的MVC开发(完整版) 本书所介绍的Struts 2已经完全超出了Struts 1框架...