一、控制层优化

  (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

二、测试新增功能

三、查看数据库

四、项目结构

搭建ssh框架项目(五)的更多相关文章

  1. 搭建ssh框架项目(四)

    一.创建控制层 (1)创建VO值对象,对应页面表单的属性值 package com.cppdy.ssh.web.form; /** * VO值对象,对应页面表单的属性值 * VO对象与PO对象的关系: ...

  2. 搭建ssh框架项目(三)

    一.创建业务层 (1)创建业务层接口IElecTextService.java package com.cppdy.ssh.service; import com.cppdy.ssh.domain.E ...

  3. 搭建ssh框架项目(二)

    一.创建dao层 (1)创建接口ICommonDao.java package com.cppdy.ssh.dao; public interface ICommonDao<T> { pu ...

  4. 搭建ssh框架项目(一)

    一.创建web项目 二.导入jar包 三.创建数据库(MySQL) 四.建立javaBean对象(ElecText.java),属于持久层对象(PO对象) package com.cppdy.ssh. ...

  5. myeclipse搭建SSH框架

    搭建SSH框架 Struts+hibernater+spring架构(myeclipse) 右击,首先加入spring,加入hibernater,再加入struts2 复制jar包(把tomcat发布 ...

  6. Maven环境下搭建SSH框架

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Maven:3.3.9 Struts2:2.5.10 Spring:4.3.8.RELEASE Hibernate:5.1.7.Fina ...

  7. Maven环境下搭建SSH框架之Spring整合Hibernate

    © 版权声明:本文为博主原创文章,转载请注明出处 1.搭建环境 Spring:4.3.8.RELEASE Hibernate:5.1.7.Final MySQL:5.7.17 注意:其他版本在某些特性 ...

  8. Java之基于Eclipse搭建SSH框架(下)

    在上篇博客里,我简介了Tomcat滴配置与Struts2滴搭建,假设对这个还不会滴童鞋去看一下我滴上篇博客<Java之基于Eclipse搭建SSH框架(上)>.今天我们接着上篇博客滴内容. ...

  9. MyEclipse8.5快速搭建SSH框架

    来源于:http://jingyan.baidu.com/article/a378c960a78125b3282830cc.html MyEclipse8.5快速搭建SSH框架 使用版本: Strut ...

随机推荐

  1. java集合复制和反转

    1.for循环方法: 2.System.arraycopy()方法: 3.Arrays.copyOf()方法: 4.Object.clone()方法: + View code /** * @autho ...

  2. go 基础(二)

    strings和strconv使用 1.strings使用 strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头. str ...

  3. ​python高级数据可视化视频Dash1

    在谷歌浏览器输入http://127.0.0.1:8050/后,回车,看到下图可视化结果 # -*- coding: utf-8 -*- """ Created on S ...

  4. Feature Selection Can Reduce Overfitting And RF Show Feature Importance

    一.特征选择可以减少过拟合代码实例 该实例来自机器学习实战第四章 #coding=utf-8 ''' We use KNN to show that feature selection maybe r ...

  5. jquery扩展代码少的分页bar

    直接上图,上代码了,代码量少,不解释那么多了 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ...

  6. JavaScript之对原生JavaScript对象及其原型扩展初探

    Object对象: //扩展:对JavaScript原生对象的扩展 //原理:原型对象 Object.prototype.keys = function(){ var keys = []; for(v ...

  7. JavaScript之表格操作(二)创建表格病填充表格数据

    //创建表格 var tableOptions = { way: "insertBefore", //insertBefore,append positionId: "d ...

  8. Wannafly挑战赛21 E 未来城市规划

    传送门 题目中给的信息很难直接维护,但是可以考虑一条边对答案的贡献 在以\(x\)为根的子树里,如果一条边\(i\)的权值为\(w_i\),这条边深度更深的端点为\(to_i\),那么这条边对这个子树 ...

  9. python技巧 列表推导

    val = [expression for value in collection if condition] 等价于 val = []for value in collection:    if c ...

  10. Oracle-数据泵使用

    一.为何选择数据泵方式 相对于exp/imp方式,数据泵(expdp/impdp)更快,且能导出空表:相对于rman.dg等方式,数据泵操作更加简单.此外,在数据量不大.可停库的情况下,数据泵方式是可 ...