要求:通过top数据字段1(置顶)、0进行标识,置顶按钮首先需要将其他top为1的的值放到集合noticeinfolist中,然后将对应的top改为0,并保存到数据库中。再根据页面传过来的notid,找出对应的那条数据,并将top值改为1。
(下面只列出主要代码)
- iceinfolist.jsp
<%@ taglib prefix="s" uri="/struts-tags"%>
<a href="noticeinfomanager.action?action=totop¬id=<s:property value='#noticeinfo.notid'/>">置顶</a>
- struts-noticeinfo.xml(action中转站)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="notice" extends="struts-default">
<action name="noticeinfomanager" class="noticeinfomanagerAction">
<result name="ok">/notice/ok.jsp</result>
<result name="enter">/notice/addiceinfo.jsp</result>
<result name="noticeinfolist">/notice/iceinfolist.jsp</result>
<result name="updateone">/notice/updatenoticeinfo.jsp</result>
<result name="show">/notice/onenoticeinfo.jsp</result>
</action>
</package>
</struts>
- NoticeinfomanagerAction.java(控制层)
/* 置顶操作,也就是置1操作*/
public String totop()
{
//首先将数据库中的所有top为1的字段值修改为0
noticeinfolist = noticeinfoService.saveOneNotid();
for(int i=0;i<noticeinfolist.size();i++){
Noticeinfo s = noticeinfoService.findByid(noticeinfolist.get(i).getNotid());//根据符合条件记录的那条数据的notid
top = 0;
s.setTop(top);
noticeinfoService.saveOneRecord(s);
}
m = noticeinfoService.findByid(notid);
//然后将所指定的top值
top=1;
m.setTop(top);
noticeinfoService.saveOneRecord(m);
/*
ActionContext cx=ActionContext.getContext();
String adm_username=(String)cx.getSession().get("admin");
if(adm_username != null && !"".equals(adm_username)){
return "zhiding";
}
*/
return "ok";
}
- NoticeinfoDaoHib.java
public List<Noticeinfo> saveOneNotid() {
List<Noticeinfo> list = getHibernateTemplate().find("from Noticeinfo n where n.top='1'");
if(list==null || list.size()<1)
return null;
else
return list;
}
实现功能虽然比较简单,但是还是记录下来,供以后复习使用。
学习Java的同学注意了!!!
学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:543120397 我们一起学Java!