发表于: 2018-01-27 23:50:02
1 575
今天完成:
1—实现一个多功能网页:用的教程是:https://www.tutorialspoint.com/springmvc/springmvc_listbox.htm
成果如下图:
(1)功能一:password:当输入密码时,网页不显示密码内容,只显示黑色圆点。这一点实现主要是靠jsp文件中的<form:password>标签实现。
(2)功能二:输入区域:能够使得输入的区域可以自己设置。这一点实现主要靠jsp文件中的<form:textarea>标签实现。
(3)功能三:单项选择功能:选择某一选项的打开或者关闭。通过jsp文件中的<form:checkbox>标签实现。
(4)功能四:多项选择功能:从多个选项中选择几项。通过jsp文件中的<form:checkboxs>标签实现。
(5)功能五:互斥选择功能:从多个选择中选择一项。通过jsp文件中的<form:radiobutton>标签实现。
(6)功能六:下拉选择框功能:从下拉选择框中选择一项。通过jsp文件中的<form:select>以及<form:option>标签实现。
(7)功能七:从列出的选项中选择一项。通过jsp文件中的<form:select>标签实现。
点击提交之后,得到第一页输入的信息。
但是其中功能五和功能七并没有实现输出,原因是教程中jsp文档中有几句Java语句,无法运行。报错的地方如下:
看上去,感觉是没有调用合适的类,导致jsp文件中不能识别这些方法。百度了一下jsp文件中引入的方法,是<% import = “####.###.###”%>,但是没有找到需要引入的类。考虑到这个程序好像是前端的内容,所以先把这两个内容忽略掉吧。先完成SSM框架整合。
2—尝试ssm的整合:使用的是how2j.cn网站上的例子:代码都在这个网站上,这里就不贴了
(1)首先创建一个maven-webapp工程。过程略。
(2)建立一个pojo类。较简单,过程略。
(3)建立一个DAO接口类CategoryMapper.class,定义了数据DAO层的接口,以及增删改查方法。
(4)DAO层的实现(implement)方法,DAOimplement.xml文件:这里需要注意的是,DAOimplement.xml要放在src/resources路径下,其中的namespace一定要写CategoryMapper.class的路径以及完整类名比如我的就是:
namespace=“com.byou.DAO.CategoryMapper”
如果不这样写,就无法生成mapper类,导致无法实现增删改查。
(5)service接口和service-implement类:我理解service的作用是预先装配mapper类,方便controller类使用。毕竟controller类的主要作用是控制网页上的内容和逻辑,service类帮助它与数据库内容建立链接。这样的好处是把复杂的事情分成两步来做,大事化小来处理,方便维护和测试。
(6)controller类,调用已经生成的数据库连接,调取数据库数据,并将这些信息传递给描述网页jsp文件。
(7)web.xml文件。在web app启动的时候,通过ContextLoaderListener获取contextConfigLocation信息(即Spring配置文档位置信息),进行Spring相关的初始化工作。拦截器对需求进行拦截,呈现相应的网页。
(8)applicationContext.xml文件(即Spring配置文档)。通过注解,将service的生命周期纳入到Spring的管理。配置数据源信息,扫描mapper.xml文件中的sql语句。扫描DAO接口,将其生命周期纳入Spring的管理。
(9)springMVC.xml文件。扫描controller,将其生命周期纳入Spring管理。注解驱动,使得注解生效。
<mvc:annotation-driven />
网页访问:
<mvc:default-servlet-handler />
网页定位到/WEB-INF/jsp/下的.jsp文件:
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass"
value="org.springframework.web.servlet.view.JstlView" />
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
(10)编写前端页面。过程略去。
成功将数据库中的信息在网页上输出。
遇到问题:
今天遇到的主要问题是在做SSM框架整合的时候,网页报错无法找到list()方法,如图,
百度到了原因在于Spring+Mybatis这一块。后来在师兄的帮助下,找到根本原因在namespace上,namespace应该是DAO接口的类全名,但是我给写成了xml文档的名字。改过来之后就好了。
师兄的一些话我感觉点醒了我:要学会使用单元测试的方法,单元测试能够帮助确定问题出现在那个地方。想起了之前看到的那句话,测试先行!
收获:
1、知道了测试先行这句话的作用,以后要践行了。
2、跑通了一个SSM项目的demo。
明天计划:
继续做SSM项目,与任务一中的项目整合,实现增删改查方法。
如果有时间,可以看看jetty到底是个什么东西。
禅道: http://task.ptteng.com/zentao/my-task.html
评论