myeclipse开发 spring+struts2.0+hibernate

2024-09-04 18:48

本文主要是介绍myeclipse开发 spring+struts2.0+hibernate,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

先贴一张我的项目目录结构

  1. 各包作用:

    • action与具体表单提交有关,是直接与前台交互的文件。一般一个功能对应一个action
    • action之上是service,service为aciton提供各项基本功能,而action处理具体表单请求。比如service提供验证是否存在该用户函数isexistsuser,而action调用这个函数处理表单的请求。
    • service之上是dao,到时直接对数据库表的操作,一般每个dao对应一个数据库表,而service调用dao提供的对数据库的基本curd操作来完成自己的功能。
    • 可见这三个包从下到上,下层为上层提供服务,上层只依赖于相邻的下层,这就是整体的架构思想。
  2. struts2.0:
    不得不说struts2.0使ssh开发方便许多,这主要体现在与表单交互方面:

    • 接受表单提交的值和返回给表单值,只需要在相应的action中加入与表单中name相同的成员变量然后添加相应的get和set方法即可以接受到表单中的值。
    • 而使用structs2.0在前台界面中提供的标签可以接受到action返回给表单的值,比如:
      1. 返回对象:
        在action中:
        user = us.searchStudentByName(value);
        在前台界面中接收:
        <s:property value='user.name'/>
        这样前台界面就显示出来了user的属性值name;
      2. 返回值:
        在action中:
        cost = ncredit*75;
        前台界面:
        <s:property value="cost"/>;
      3. 返回list数组:
        在action中:
        booklist = bs.showAllBook();
        前台界面:
        <s:iterator value="booklist" id="book">
        <tr class="active">
        <td class="text-success"><s:property value="#book.bookname"/></td>
        <td class="text-success"><s:property value="#book.addDate"/></td>
        <td class="text-success"><s:property value="#book.returnDate"/></td>
        <td class="text-success"><s:property value="#book.sid"/></td>
        </tr>
        </s:iterator>

        4. 表单中获取session值并显示:
        <s:property value="#session.user.sex"/>
        其中user是session中存的一个对象,sex是user的一个属性
    • 表单提交:
      1. 提交值:提交值就是input标签里name属性和action中的属性对应即可。
      2. 提交对象:有时候表单提交的值过多,比如修改个人信息时,需要把这个人的信息都提交过去,这时候再一个一个地和action中的属性对应代码就太长了。可以以对象的形式提交给action,这样action中只需声明一个同名的对象即可,然后从对象里面取值:
        前台:
        <form action="*.action" method="post">
        <div class="form-group">
        <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">姓名</span>
        <input type="text" class="form-control" placeholder="name" name = "student.name" aria-describedby="basic-addon1">
        </div>
        <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">性别</span>
        <input type="text" class="form-control" placeholder="sex" name = "student.sex" aria-describedby="basic-addon1">
        </div>
        <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">学号</span>
        <input type="text" class="form-control" placeholder="student id" name = "student.sid" aria-describedby="basic-addon1">
        </div>
        <div class="input-group">
        <span class="input-group-addon" id="basic-addon1">班级</span>
        <input type="text" class="form-control" placeholder="class" name = "student.cid" aria-describedby="basic-addon1">
        </div>
        <button type="submit" class="btn btn-primary btn-lg btn-block active">完成</button>
        </div>
        </form>

        可以看到name属性是以“对象名.属性名”的形式。
        后台:
        //接受的值
        private User student;

        前台只需声明这一个对象即可接受全部的值。
    • 另外struts.xml中不仅可以配置转发到 jsp页面,还可以转发到action,即从一个action到另一个action:
      <result name="SUCCESS" type = "chain">
      <param name="actionName">showallstudent</param><!-- 这里是请求转发,即删除了之后再重新显示 -->
      </result>

      这个就是转发到name为showallstudent的action继续处理。

这篇关于myeclipse开发 spring+struts2.0+hibernate的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136734

相关文章

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Java中的Lambda表达式及其应用小结

《Java中的Lambda表达式及其应用小结》Java中的Lambda表达式是一项极具创新性的特性,它使得Java代码更加简洁和高效,尤其是在集合操作和并行处理方面,:本文主要介绍Java中的La... 目录前言1. 什么是Lambda表达式?2. Lambda表达式的基本语法例子1:最简单的Lambda表

Java中Scanner的用法示例小结

《Java中Scanner的用法示例小结》有时候我们在编写代码的时候可能会使用输入和输出,那Java也有自己的输入和输出,今天我们来探究一下,对JavaScanner用法相关知识感兴趣的朋友一起看看吧... 目录前言一 输出二 输入Scanner的使用多组输入三 综合练习:猜数字游戏猜数字前言有时候我们在

Spring Security+JWT如何实现前后端分离权限控制

《SpringSecurity+JWT如何实现前后端分离权限控制》本篇将手把手教你用SpringSecurity+JWT搭建一套完整的登录认证与权限控制体系,具有很好的参考价值,希望对大家... 目录Spring Security+JWT实现前后端分离权限控制实战一、为什么要用 JWT?二、JWT 基本结构

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Java中的JSONObject详解

《Java中的JSONObject详解》:本文主要介绍Java中的JSONObject详解,需要的朋友可以参考下... Java中的jsONObject详解一、引言在Java开发中,处理JSON数据是一种常见的需求。JSONObject是处理JSON对象的一个非常有用的类,它提供了一系列的API来操作J

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据