• 搭建ssh框架项目(五)


    一、控制层优化

      (1)创建BaseAction.java类

    package com.cppdy.ssh.web.action;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.struts2.interceptor.ServletRequestAware;
    import org.apache.struts2.interceptor.ServletResponseAware;
    
    import com.opensymphony.xwork2.ActionSupport;
    
    @SuppressWarnings("serial")
    public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware {
    
        protected HttpServletRequest request = null;
        
        protected HttpServletResponse response = null;
    
        public void setServletRequest(HttpServletRequest request) {
            this.request = request;    
        }
        
        public void setServletResponse(HttpServletResponse response) {
            this.response = response;    
        }
        
    }
    BaseAction.java

      (2)创建ServiceProviderCord.java类

    package com.cppdy.ssh.container;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class ServiceProviderCord {
        
        protected static ApplicationContext ac;
        
        /**  
        * @Name: load
        * @Description: 加载beans.xml文件(filename放置的是beans.xml)
        * @Parameters: String filename(传递beans.xml文件)
        * @Return: 无
        */
        public static void load(String filename){
            ac = new ClassPathXmlApplicationContext(filename);
        }
    }
    ServiceProviderCord.java

      (3)创建ServiceProvider.java类

    package com.cppdy.ssh.container;
    
    import org.apache.commons.lang.StringUtils;
    
    public class ServiceProvider {
        public static ServiceProviderCord spc;
        //加载beans.xml文件
        static{
            spc = new ServiceProviderCord();
            spc.load("beans.xml");
        }
        /**  
        * @Name: getService
        * @Description: 自定义spring容器,加载服务节点
        * @Parameters: String serviceName 服务节点名称
        * @Return: Object 服务接口
        */
        public static Object getService(String serviceName){
            if(StringUtils.isBlank(serviceName)){
                throw new RuntimeException("当前服务名称不存在");
            }
            Object object = null;
            if(spc.ac.containsBean(serviceName)){
                object = spc.ac.getBean(serviceName);
            }
            if(object==null){
                throw new RuntimeException("当前服务名称【"+serviceName+"】下的服务节点不存在");
            }
            return object;
        }
    }
    ServiceProvider.java

      (4)修改ElecTextAction.java的save方法,将数据保存入库

    package com.cppdy.ssh.web.action;
    
    import java.util.Date;
    
    import com.cppdy.ssh.container.ServiceProvider;
    import com.cppdy.ssh.domain.ElecText;
    import com.cppdy.ssh.service.IElecTextService;
    import com.cppdy.ssh.web.form.ElecTextForm;
    import com.opensymphony.xwork2.ModelDriven;
    
    @SuppressWarnings("serial")
    public class ElecTextAction extends BaseAction implements ModelDriven<ElecTextForm>{
    
        private IElecTextService elecTextService = (IElecTextService)ServiceProvider.getService("elecTextService");
        
        private ElecTextForm elecTextForm = new ElecTextForm();
        
        public ElecTextForm getModel() {
            return elecTextForm;
        }
        /**  
        * @Name: save
        * @Description: 保存ElecText对象的方法
        * @Parameters: 无
        * @Return: 跳转到system/textAdd.jsp
        */
        public String save(){
            //System.out.println(elecTextForm.getTextName());
            //VO对象转换成PO对象
            //实例化PO对象
            ElecText elecText = new ElecText();
            elecText.setTextName(elecTextForm.getTextName());//测试名称
            elecText.setTextDate(new Date());//测试日期
            elecText.setTextRemark(elecTextForm.getTextRemark());//测试备注
            
            elecTextService.saveElecText(elecText);
            return "save";
        }
    
        
    }
    ElecTextAction.java

    二、测试新增功能

    三、查看数据库

    四、项目结构

  • 相关阅读:
    cookie secure属性 导致setcookie失败-test
    vim 常用操作总结(持续更新)-test
    网页重定向(外部重定向和内部重定向)-test
    pat 1002 A+B for polynomials (第二个测试点一直无法通过,最后解决)-test
    pat 1001 A+B Format-test
    验证码无法显示的其中一种原因-test
    str_replace替换换行符失败原因-test
    .net/C#语言web项目内新增js或css文件调用不到,url报错404
    在W10系统中配置Java环境变量后,cmd命令提示符找不到java
    JS使用知识点理解
  • 原文地址:https://www.cnblogs.com/jiefu/p/9864856.html
Copyright © 2020-2023  润新知