实习日记--day5(SSM企业框架搭建与前后端传参问题)
SSM企业框架的搭建
之前我们按照SSM框架对简单增删改查进行了实现,其框架如下
上图中的JAVA文件夹下,包含四个包:bean,controller,dao,service。其中,bean储存实体类,dao层用于与数据库交换信息,service层提供具体服务,controller层提供联合前后端数据的功能。
今天我们进行了企业SSM框架的搭建,内部的实际代码其实与之前的大部分相类似,但是整体的结构有了一些不同。搭建完成后的参考结构如下
可以见到的是,类似于之前的搭建方式,都有对应的bean,controller,dao,service结构,不同的是,之前的四层只是四个文件夹,而今天要建立的框架是四个项目。每个项目中都有独立的结构。controller层被包含在ssm_web项目中
ssm_bean项目的结构如下:
ssm_dao项目的结构如下:
ssm_service项目的结构如下:
ssm_web项目的结构如下:
controller所对应的功能为之前controller层中的功能,即联系前后端的数据。resource文件夹中存放的资源文件在前一天的已经解释过,此处一致。webapp下的文件夹如下:
如图,img文件夹中存放的是与前端页面有关的图片,在运行前端文件时会自动被加载到页面上。pages与WEB-INF是各个前端的页面(jsp文件)。
注意在上述过程中,需要解决项目间调用的问题,仅仅使用初始生成的框架是无法调用的,需要手动添加代码。
前后端传参问题的解决
在完成之前简单SSM框架的搭建后,要求我们实现增删改查的功能。增删改查的功能是建立在前后端与数据库联系的情况下的。所谓前后端的联系,就是说在前端所输入的数据,或是默认存在的数据,要能够成功地传送到后端的程序中,再由后端的程序与数据库进行交流。
我在如下 int id 的参数传递中出现了参数传递错误。如下为实体类部分:
可以见到 id 为int型的。
如图为前端的代码界面:
如上的input格式中,type为类型。若是text类型为则在前端出现一个文本框,用于接收输入的数据,将输入的内容赋值到name所代表的变量中。value中的值是要赋予给name中变量的值。
以用户姓名那一行为例,type为text,说明前端显示一个输入框。name为username,即此处有一个名为username的变量(与后端对应的变量,必须完全一致才能在后端自动注入)。value为空,说明此变量的初始值为空,由于是输入框,则新输入的值会覆盖这个“空”,最后传递到username中。
接下来讲解下面这行代码:
<input type="hidden" name="id" value="${id}"/>
type="hidden"说明这是隐藏属性的值,即这个变量名为id的变量,它在前端没有任何显示效果(例如type=“submit"的话,在前端的显示效果为一个提交按钮)。value=”${id},说明这个value是从前端页面中已经存在的一个值id中得来,注意这种书写形式。而这个界面中已经存在的值又是从何而来你呢?
实际上这个值是在页面生成时由我们在controller中手动注入的,这样做的目的是保证这个id可以从一个页面传递到另一个页面中。如下图:
接下来介绍这个“id”的具体传递过程。首先,在allUser界面中,点击更改,则将该user的id复制给变量“id”,如下图:
接下来在对应的位置“toUpdate.do”后的函数,参数中设置一个int id 用于接收在上个页面中接收到的id值,接收到后,再将这个值传递到下个页面,操作如下:
最后,在这个新打开的界面中,就可以接收到id的值了。