介绍
()Struts相当于是servlet和servelt不同的是当提交到strutsxml中之后通过aciton标签就可以直接调用想用的方法减少了代码量
()在ActionSuport中set方法是注入即是set方法是获取jsp页面中传过来的值get方法是是向jsp页面发送值值得一提的是有了get和set方法之后就取代了servlet中的
requestgetParameter()和重定向的操作在这里要重点理解get和set方法的使用
()在struts分页中set和set方法更能突出它的用法
下面来看实例把!
()首先访问这个页面时就应该查找出nowPage为信息所以在action中要判断nowPage是否为空
在jsp页面的分页判断可以写为
<div>
<a ${pagntextPath}/findAllProaction?nowPage=>首页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${nowPage<=?:nowPage}>上一页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${nowPage+>=untPage?untPage:nowPage+}>下一页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${untPage}>末页</a>
</div>
当然可以在Page中封装好nowPage的判断在这里主要介绍action
当点击下一页的时候会连接到findAllProaction这个strutsxml中的action
strutsxml 文件为
<?xml version= encoding=GBK?>
<!DOCTYPE struts PUBLIC
//Apache Software Foundation//DTD Struts Configuration //EN
/dtds/strutsdtd>
<struts>
<package name=pro namespace=/ extends=strutsdefault>
<action name=findAllPro class=cncsdnhractionProvinceAction method=findAll>
<result>/listjsp</result>
</action>
</package>
</struts>
从strutsxml中可以看出findAllPro连接到的是cncsdnhractionProvinceAction下的findAll方法我们去找ProvinceAction为
// 分页查询
public String findAll() {
if (equals(nowPage) || nowPage == null) {
thisnowPage = ;
}
Systemoutprintln(nowPage + ==============)
page = new PageWhere(Province nowPage where <)
// page= pagegetDatas()
return SUCCESS;
}
因为要返回到jsp页面所以要写一个get方法来把page传到jsp页面中
// 得到page的值 并把得到的值放到page中page可以获取所有的东西
private PageWhere page;
public PageWhere getPage() {
return page;
}
这样就把当前页的信息传到了jsp中但是在分页的时候因为nowPage是jsp和struts来回传的值并且是一个变量所以设置一个属性nowPage生成get和set方法来获取nowPage和把修改的nowPage传到jsp中整个ProvinceAction页面为
package cncsdnhraction;
import cncsdnhrHibernateUtilPageWhere;
import cncsdnhrdomainProvince;
import cncsdnhrserviceProvinceService;
import cncsdnhrserviceProvinceServiceImpl;
import comopensymphonyxworkActionSupport;
public class ProvinceAction extends ActionSupport {
/**
* get方法是向jsp页面中传值 set方法向获取jsp页面的值
*/
private static final long serialVersionUID = L;
private ProvinceService provinceService = new ProvinceServiceImpl()
private Integer id;
private String name;
public ProvinceAction() {
super()
}
// 通过页面注入进来的id的名称一定要和表单中 的一致
public void setId(Integer id) {
thisid = id;
}
public void setName(String name) {
thisname = name;
}
// 接收传过来的nowPage
private Integer nowPage;
public void setNowPage(Integer nowPage) {
thisnowPage = 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) {
thisnowPage = ;
}
Systemoutprintln(nowPage + ==============)
page = new PageWhere(Province nowPage where <)
// page= pagegetDatas()
return SUCCESS;
}
}
整个jsp页面为
<body>
<div align=center>
<h>
省市操作
</h>
<table border=px cellpadding=px cellspacing=px width=px>
<tr>
<th>
编号
</th>
<th>
省名
</th>
<th>
操作
</th>
</tr>
<tbody>
<c:forEach items=${pagedatas} var=entity>
<tr align=center>
<td>
${entityid}
</td>
<td>
${entityname}
</td>
<td>
<a ${pagntextPath}/insertjsp>添加</a>
<a ${pagntextPath}/delProaction?id=${entityid}>删除</a>
<a ${pagntextPath}/updateProaction?id=${entityid}>编辑</a>
</td>
</tr>
</c:forEach>
</tbody>
</table>
<br/>
<div>
<a ${pagntextPath}/findAllProaction?nowPage=>首页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${nowPage<=?:nowPage}>上一页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${nowPage+>=untPage?untPage:nowPage+}>下一页</a>
<a ${pagntextPath}/findAllProaction?nowPage=${untPage}>末页</a>
</div>
</div>
</body>
以上数据和从hibernate配置的数据库中读取出来的分页学会了这个就是小case了主要看其中的注释就ok了但是在写更新的时候需要注意
更新需要在更新完之后要在内部跳转到查询的页面所以结果应写为
<result type=chain>findAllPro</result>
记住要写type类型