struts2配置web.xml+struts.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <!--定义核心Filter FilterDispatcher --> <filter-name>struts2</filter-name> <!-- 定义核心Filter的名称 --> <filter-class> <!--定义核心Filter的实现类 --> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name><!--核心Filter的名称 --> <url-pattern>/*</url-pattern><!--使用该核心Filter过滤所有的Web请求 --> </filter-mapping> </web-app>
struts.xml里配置action:
<?xml version="1.0" encoding="UTF-8" ?><!-- XML声明 --> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><!-- 指定Struts 2配置文件的DTD信息 --> <struts><!-- 根节点 --> <constant name="struts.i18n.encoding" value="gb2312"></constant> <package name="struts2" extends="jfreechart-default"> <action name="addVote" class="com.sanqing.action.AddVoteAction"> <result name="success">/admin/addVote.jsp</result> </action> <action name="showVote" class="com.sanqing.action.ShowVoteAction"> <result name="success">/admin/showVote.jsp</result> </action> <action name="deleteVote" class="com.sanqing.action.DeleteVoteAction"> <result name="success" type="chain">showVote</result> </action> <action name="showVoteByChannel" class="com.sanqing.action.ShowVoteByChannelAction"> <result name="success">index.jsp</result> <result name="input">index.jsp</result> </action> <action name="voteResult" class="com.sanqing.action.VoteResultAction"> <result name="success" type="chart"> <param name="width">400</param> <param name="height">300</param> </result> </action> <action name="doVote" class="com.sanqing.action.DoVoteAction"> <result name="success" type="chain">voteResult</result> <result name="input" type="chain">showVoteByChannel</result> </action> </package> </struts>
AddVoteAction.java:
package com.sanqing.action; import java.util.UUID; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.bean.Vote; import com.sanqing.bean.VoteOption; import com.sanqing.dao.VoteDAO; import com.sanqing.dao.VoteOptionDAO; import com.sanqing.daoFactory.VoteDAOFactory; import com.sanqing.daoFactory.VoteOptionDAOFactory; public class AddVoteAction extends ActionSupport { private int channel; // 封装channel参数 private String voteName; // 封装voteName参数 private String[] voteOption;// 封装voteOption参数 public int getChannel() { return channel; } public void setChannel(int channel) { this.channel = channel; } public String getVoteName() { return voteName; } public void setVoteName(String voteName) { this.voteName = voteName; } public String[] getVoteOption() { return voteOption; } public void setVoteOption(String[] voteOption) { this.voteOption = voteOption; } public String execute() throws Exception { VoteDAO voteDAO = VoteDAOFactory.getVoteDAOInstance();//获得VoteDAO实例 VoteOptionDAO voteOptionDAO = VoteOptionDAOFactory.getVoteOptionDAOInstance();//获得voteOption实例 //首先保存投票,然后再保存投票选项 Vote vote = new Vote(); vote.setChannelID(channel); vote.setVoteName(voteName); voteDAO.addVote(vote); //查询投票ID int voteID = voteDAO.findVoteByName(voteName).getVoteID(); //保存投票选项 for(String voteOptionName : voteOption) { VoteOption vp = new VoteOption(); vp.setVoteID(voteID); vp.setVoteOptionName(voteOptionName); voteOptionDAO.addVoteOption(vp); } return this.SUCCESS; } }
struts2下面JfreeChart,参考:http://www.cnblogs.com/rixiang/p/5249560.html
struts.xml下配置action:
<action name="voteResult" class="com.sanqing.action.VoteResultAction">
<result name="success" type="chart">
<param name="width">400</param>
<param name="height">300</param>
</result>
</action>
action:
package com.sanqing.action; import java.util.List; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.plot.PlotOrientation; import org.jfree.data.category.DefaultCategoryDataset; import com.opensymphony.xwork2.ActionSupport; import com.sanqing.bean.Vote; import com.sanqing.bean.VoteOption; import com.sanqing.dao.VoteDAO; import com.sanqing.dao.VoteOptionDAO; import com.sanqing.daoFactory.VoteDAOFactory; import com.sanqing.daoFactory.VoteOptionDAOFactory; public class VoteResultAction extends ActionSupport { private JFreeChart chart; private int voteID;//投票ID public int getVoteID() { return voteID; } public void setVoteID(int voteID) { this.voteID = voteID; } public JFreeChart getChart() { VoteDAO voteDAO = VoteDAOFactory.getVoteDAOInstance();//获得VoteDAO实例 VoteOptionDAO voteOptionDAO = VoteOptionDAOFactory.getVoteOptionDAOInstance();//获得voteOption实例 //根据投票ID得到的投票 Vote vote = voteDAO.findVoteById(voteID); String voteName = vote.getVoteName(); //得到投票名称 //根据投票ID得到所有的投票选项 List<VoteOption> voteOptions = voteOptionDAO.findVoteOptionByVoteID(voteID); DefaultCategoryDataset dcd = new DefaultCategoryDataset();//数据源 //设置数据 for(VoteOption voteOption : voteOptions) { dcd.setValue(voteOption.getTicketNum(),"",voteOption.getVoteOptionName()); } //使用工厂类创建柱状图 JFreeChart chart = ChartFactory.createBarChart3D( voteName, "投票选项", "投票数", dcd, PlotOrientation.VERTICAL , false, true, false); return chart; } public void setChart(JFreeChart chart) { this.chart = chart; } public String execute() throws Exception { return SUCCESS; } }
投票系统开发总结struts2,jfreechart,cookie应用,以及前端技术
原文:http://www.cnblogs.com/rixiang/p/5249492.html