📄 pollaction.java
字号:
package tarena.action;import java.util.ArrayList;import java.util.List;import java.util.Map;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;import tarena.form.PollForm;import tarena.pojo.*;import tarena.util.ContextUtil;public class PollAction extends Action { /** * 客户提交调查, 成功往application作用域的poll对象中加入对应的pollLine * 以及设置CLIENT_IP_MAP所代表map对象里对应客户端IP的value值为Boolean类型的true */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ActionErrors errors = new ActionErrors(); ServletContext servletContext = request.getSession() .getServletContext(); Map clientIPMap = (Map) servletContext .getAttribute(ContextUtil.CLIENT_IP_MAP); Boolean isPolled = (Boolean) clientIPMap.get(request.getRemoteAddr()); if (isPolled.booleanValue()) { // 判断重复提交; errors.add("error.doublepoll", new ActionMessage("error.doublepoll")); } else { // 往poll对象里加入当前提交的pollLine对象 PollForm pollForm = (PollForm) form; PollLine pollLine = createPollLine(pollForm); Poll poll = (Poll) request.getSession().getServletContext() .getAttribute(ContextUtil.POLL); poll.getPollLineSet().add(pollLine); pollLine.setPoll(poll); // 设置CLIENT_IP_MAP所代表map对象里对应客户端IP的value值为Boolean类型的true clientIPMap.put(request.getRemoteAddr(), new Boolean("true")); errors.add("info.poll", new ActionMessage("info.poll")); } saveErrors(request.getSession(), errors); return mapping.findForward("return"); } private PollLine createPollLine(PollForm pollForm) { List q1 = new ArrayList(); List q2 = new ArrayList(); PollLine pollLine = new PollLine(); pollLine.setC1(pollForm.getC1()); pollLine.setC2(pollForm.getC2()); pollLine.setC3(pollForm.getC3()); pollLine.setC4(pollForm.getC4()); pollLine.setC5(pollForm.getC5()); pollLine.setC6(pollForm.getC6()); pollLine.setC7(pollForm.getC7()); pollLine.setC8(pollForm.getC8()); pollLine.setC9(pollForm.getC9()); pollLine.setC10(pollForm.getC10()); pollLine.setC11(pollForm.getC11()); pollLine.setC12(pollForm.getC12()); pollLine.setC13(pollForm.getC13()); pollLine.setC14(pollForm.getC14()); if (!(pollForm.getQ11() == null || pollForm.getQ11().trim().length() < 1)) q1.add(pollForm.getQ11()); if (!(pollForm.getQ12() == null || pollForm.getQ12().trim().length() < 1)) q1.add(pollForm.getQ12()); if (!(pollForm.getQ13() == null || pollForm.getQ13().trim().length() < 1)) q1.add(pollForm.getQ13()); q2.add(pollForm.getQ21()); q2.add(pollForm.getQ22()); q2.add(pollForm.getQ23()); pollLine.setQ1(q1); pollLine.setQ2(q2); pollLine.setAvgScore(calAvgScore(pollLine)); pollLine.setIsValid(isValid(pollLine)?"y":"n"); return pollLine; } private double calAvgScore(PollLine pollLine) { double avgScore = 0.0d; avgScore += pollLine.getC1().doubleValue(); avgScore += pollLine.getC2().doubleValue(); avgScore += pollLine.getC3().doubleValue(); avgScore += pollLine.getC4().doubleValue(); avgScore += pollLine.getC5().doubleValue(); avgScore += pollLine.getC6().doubleValue(); avgScore += pollLine.getC7().doubleValue(); avgScore = Math.round(avgScore / 7 * 100) / 100.00; return avgScore; } private boolean isValid(PollLine pollLine) { boolean flag = true; if (pollLine.getC1().doubleValue() <= 2.0 && pollLine.getC2().doubleValue() <= 2.0 && pollLine.getC3().doubleValue() <= 2.0 && pollLine.getC4().doubleValue() <= 2.0 && pollLine.getC5().doubleValue() <= 2.0 && pollLine.getC6().doubleValue() <= 2.0 && pollLine.getC7().doubleValue() <= 2.0) flag = false; return flag; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -