标签:菜单栏 rac WAD tor 新闻列表 warning 管理系统 false data
需求:简单的新闻管理系统,要求能实现简单的增删改查功能
5.action(通过struts与页面交互)
package com.pay.boss.action; import com.pay.boss.entity.News; import com.pay.boss.service.NewsService; /** * Title:NewsAction * action里面的方法根据页面来写 */ @SuppressWarnings("serial") public class NewsAction extends Struts2ActionSupport{ //封装数据,并被继承给NewsAction;可以不继承,但需要自己封装; //注入service;业务 private NewsService newsService; private News news; private Long id; private String newsNo; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public void newsAdd(){ try{ news = newsService.create(news); write("添加成功");//没有异常就返回"添加成功" }catch (Throwable e) { e.printStackTrace(); //捕获异常; write("操作异常"); } } public String newsDetail(){ news = newsService.findById(news.getId()); return SUCCESS; }//通过id查找并返回成功 public void newsCheck(){ news = newsService.findByNewsNo(newsNo); if (news == null){ write("编号可用"); }else{ write("编号已存在"); } }//在这里判断,结果返回给页面,就不需要在页面上进行判断了; public String getNewsNo() { return newsNo; } public void setNewsNo(String newsNo) { this.newsNo = newsNo; } public String newsUpdate(){ //Update的方法 news = newsService.update(news); return SUCCESS; } public NewsService getNewsService() { return newsService; } public void setNewsService(NewsService newsService){ this.newsService = newsService; } public News getNews(){ return news; } public void setNews(News news){ this.news = news; } }
6.service接口及其实现,可以放在dao后面写,熟练之后顺序无所谓
NewsService
package com.pay.boss.service; import com.pay.boss.entity.News; public interface NewsService { public News create(News news); //增 public News update(News news);//改 public void delete(News news);//删 public News findById(Long id);//通过id查 public News findByNewsNo(String newsNo); //通过编号查 }
NewsServiceImpl
package com.pay.boss.service.impl; import java.util.Date; import com.pay.boss.dao.NewsDao; import com.pay.boss.entity.News; import com.pay.boss.service.NewsService; import com.pay.boss.enums.NewsStatus; public class NewsServiceImpl implements NewsService { private NewsDao newsDao; //注入Dao; public NewsDao getNewsDao(){ return newsDao; } public void setNewsDao(NewsDao newsDao){ this.newsDao = newsDao; } @Override public News create(News news) { news.setStatus(NewsStatus.INIT); news.setCreateTime(new Date()); return newsDao.create(news); } @Override public News update(News news) { News newsDaoDB = newsDao.findById(news.getId()); /*从数据库中取出东西用以修改*/ newsDaoDB.setStatus(NewsStatus.INIT); newsDaoDB.setTitle(news.getTitle()); newsDaoDB.setSummary(news.getSummary()); newsDaoDB.setContent(news.getContent()); newsDaoDB.setAuthor(news.getAuthor()); newsDaoDB.setImgUrl(news.getImgUrl()); newsDaoDB.setNewsCategory(news.getNewsCategory()); newsDaoDB.setUpdateTime(new Date()); newsDaoDB = newsDao.update(newsDaoDB); //将修改后的数据传入数据库; return newsDaoDB; } @Override public void delete(News news) { newsDao.delete(news); //不需要返回值 } @Override public News findById(Long id) { return newsDao.findById(id); } @Override public News findByNewsNo(String newsNo) { return newsDao.findByNewsNo(newsNo); } }
7.配置spring,struts,hibernate,,
spring-manager 是配置javabean
<!-- 新闻需求 -->
<bean id="newsAction" class="com.pay.boss.action.NewsAction" singleton="false"></bean>
<bean id="newsService" class="com.pay.boss.service.impl.NewsServiceImpl"></bean>
<bean id="newsDao" class="com.pay.boss.dao.impl.NewsDaoImpl"></bean>
spring-valueList 一些sql语句,查询,详细信息时使用
<!-- 新闻列表 -->
<entry key="newsList">
<bean parent="defConfig">
<property name="sql">
<value>
<![CDATA[
select ID as id ,
NEWS_NO as news_no ,
CREATE_TIME as create_time ,
UPDATE_TIME as update_time,
STATUS as status ,
SUMMARY as summary,
CONTENT as content,
IMG_URL as img_url,
NEWS_CATEGORY as news_category,
TITLE as title,
AUTHOR as author
from news
where 1=1
/~id: and id = [id]~/
/~newsNo: and news_no =‘[newsNo]‘ ~/
/~status: and status = ‘[status]‘~/
/~newsCategory: and news_category = ‘[newsCategory]‘~/
order by id desc
]]>
</value>
</property>
</bean>
</entry>
struts
有菜单栏的
<result name="toNewsQuery">/jsp/news/newsQuery.jsp</result>
<result name="toNewsAdd">/jsp/news/newAdd.jsp</result> <!-- 跳转之前的页面 ,带有菜单-->
没菜单栏的(也是通过按钮点击)
<!-- 新闻需求 -->
<action name="newsDetail" class="newsAction" method="newsDetail">
<result>/jsp/news/newsDetail.jsp</result>
</action>
<action name="newsQuery" class="defaultValueListAction">
<param name="queryId">newsList</param> <!-- valuelist的东西,需在spring-valuelist里配置 -->
<result>/jsp/news/newsQueryResult.jsp</result>
</action>
<action name="newsAdd" class="newsAction" method="newsAdd">
</action>
<action name="toNewsUpdate" class="newsAction" method="newsDetail">
<result>/jsp/news/newsUpdate.jsp</result>
</action> <!-- 一个直接跳转到页面的路径,一个走action(后台)的路径,本质是一样的 -->
<action name="newsUpdate" class="newsAction" method="newsUpdate">
<result>/jsp/news/newsDetail.jsp</result> <!-- type="redirect"表示不重复提交 -->
</action>
<action name="newsCheck" class="newsAction" method="newsCheck">
</action>
hibernate:
<mapping class="com.pay.boss.entity.News" /> <!-- mapping:映射 -->
注意,这里面的entityDao就相当于session Factory,所以直接引用就行,否则需要自己注入session Factory
8.一切准备完毕,就跑起来检查异常及错误
9.作为一个刚接触java的新手,你滴任重且道远.此系统作为你第一个完成的东西,里面所包含的知识与习惯需要好好的消化与熟悉.,提醒自己努力提升自己的同时还要勿忘初心;
标签:菜单栏 rac WAD tor 新闻列表 warning 管理系统 false data
原文地址:https://www.cnblogs.com/erwei/p/9486260.html