ognl表达式_ognl表达式和el表达式_ognl表达式是什么

电脑杂谈  发布时间:2017-02-15 20:20:51  来源:网络整理
ognl表达式ognl表达式

技术点:

模型驱动

防止表单重复提交–

数据回显

值栈

OGNL表达式

通配符、路径匹配原则、常量

数据处理的集中方式

请求数据自动封装以及类型转换

1、导包

c3p0-0.9.1.2.jar

commons-dbutils-1.6.jar

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

freemarker-2.3.19.jar

javassist-3.11.0.GA.jar

mysql-connector-java-5.1.12-bin.jar

ognl-3.0.5.jar

struts2-core-2.3.4.1.jar

xwork-core-2.3.4.1.jar

2、配置web.xml 注册struts核心过滤器

            struts2        org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter                struts2        /*    

3、配置struts.xml

<code class=" hljs xml"><struts>    <constant name="struts.ui.theme" value=""></constant>    <package name="emp" extends="struts-default">        <global-results>            <result name="error">/error/error.jsp</result>        </global-results>        <action name="emp_*" class="cn.itcast.action.EmployeeAction" method="{1}">            <interceptor-ref name="defaultStack"></interceptor-ref>            <interceptor-ref name="token"></cke:param>save            </interceptor-ref>            <result name="invalid.token" type="redirectAction">emp_list</result>            <result name="list">/WEB-INF/list.jsp</result>            <result name="update">/WEB-INF/update.jsp</result>        </action>    </package></struts></code>

4、开发Action

  /** * 员工管理Action * */public class EmployeeAction extends ActionSupport implements ModelDriven{    /****封装数据****/    private Employee employee = new Employee();    public Employee getEmployee() {        return employee;    }    public void setEmployee(Employee employee) {        this.employee = employee;    }    // 重写模型驱动方法    @Override    public Employee getModel() {        return employee;    }    /****调用的Service****/    private IEmployeeService employeeService = new EmployeeService();    /**     * 1. 添加员工     */    public String save() {        try {            // 调用service保存            employeeService.save(employee);            // 添加成功,去到列表页面            return list();            //return "addsuccess";        } catch (Exception e) {            e.printStackTrace();            return ERROR;        }    }    /**     * 2. 列表显示     */    public String list() {        try {            // 查询全部            List listEmp = employeeService.getAll();            // 保存到request域            ActionContext.getContext().getContextMap().put("listEmp", listEmp);            return "list";        } catch (Exception e) {            e.printStackTrace();            return ERROR;        }    }    /**     * 3. 进入修改页面     */    public String viewUpdate() {        try {            // 3.1 获取当前修改的记录的主键值            int id = employee.getId();            // 3.2 service查询            Employee emp = employeeService.findById(id);            // 3.3 数据回显            // a. 先得到值栈            ValueStack vs = ActionContext.getContext().getValueStack();            vs.pop();   //移除栈顶元素            vs.push(emp);   // emp对象放入栈顶            return "update";        } catch (Exception e) {            e.printStackTrace();            return ERROR;        }    }    /**     * 4. 修改员工     */    public String update() {        try {            // 调用service修改            employeeService.update(employee);            return list();        } catch (Exception e) {            e.printStackTrace();            return ERROR;        }    }}

5、开发entity

public class Employee {    private int id;// INT PRIMARY KEY AUTO_INCREMENT,    private String empName;// VARCHAR(20),    private Date workDate;// DATE -- 入职时间    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getEmpName() {        return empName;    }    public void setEmpName(String empName) {        this.empName = empName;    }    public Date getWorkDate() {        return workDate;    }    public void setWorkDate(Date workDate) {        this.workDate = workDate;    }}

6、开发dao

创建 – 创建

CREATE DATABASE hib_demo DEFAULT CHARACTER SET utf8;

– 建表

CREATE TABLE employee (

id INT PRIMARY KEY AUTO_INCREMENT,

empName VARCHAR(20),

workDate DATE – 入职时间

)

dao接口

/** * 数据访问层接口 *  * */public intece IEmployeeDao {    /**     * 查询全部员工     */    List getAll();    /**     * 根据主键查询     */    Employee findById(int id);    /**     * 添加员工     */    void save(Employee emp);    /**     * 修改员工     */    void update(Employee emp);}

dao方法实现

public class EmployeeDao implements IEmployeeDao{    @Override    public Employee findById(int id) {        String sql = "select * from employee where id=?";        try {            return JdbcUtils.getQuerrRunner().query(sql, new BeanHandler(Employee.class),id);        } catch (SQLException e) {            throw new RuntimeException(e);        }    }    @Override    public List getAll() {        String sql = "select * from employee";        try {            return JdbcUtils.getQuerrRunner().query(sql, new BeanListHandler(Employee.class));        } catch (SQLException e) {            throw new RuntimeException(e);        }    }    @Override    public void save(Employee emp) {        String sql = "insert into employee(empName,workDate) values(?,?)";        try {            JdbcUtils.getQuerrRunner().update(sql, emp.getEmpName(),emp.getWorkDate());        } catch (SQLException e) {            throw new RuntimeException(e);        }    }    @Override    public void update(Employee emp) {        String sql = "update employee set empName=?,workDate=? where id=?";        try {            JdbcUtils.getQuerrRunner().update(sql, emp.getEmpName(),emp.getWorkDate(),emp.getId());        } catch (SQLException e) {            throw new RuntimeException(e);        }    }}

7、导入 JdbcUtils,以及配置好c3p0


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-32632-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 黎道静
        黎道静

        赚后互相分享让更多散户得到帮助

      • 太守
        太守

        告诉美军这里不是你想来就来

      热点图片
      拼命载入中...