当前位置: 首页 > news >正文

网站设计有哪些创新点制作网站项目实例

网站设计有哪些创新点,制作网站项目实例,学校门户网站的网站建设方案,响应式网站建站工具目录 一、前期准备 1.1 编写页面跳转控制类 二、实现CRUD 2.1 相关依赖 2.2 配置文件 2.3 逆向生成 2.4 后台代码完善 2.4.1 编写切面类 2.4.2 编写工具类 2.4.3 编写biz层 2.4.4 配置mapper.xml 2.4.5 编写相应接口类#xff08;MusicMapper#xff09; 2.4.6 处…目录 一、前期准备 1.1 编写页面跳转控制类 二、实现CRUD 2.1 相关依赖 2.2 配置文件 2.3 逆向生成 2.4 后台代码完善 2.4.1 编写切面类 2.4.2 编写工具类 2.4.3 编写biz层 2.4.4 配置mapper.xml 2.4.5 编写相应接口类MusicMapper 2.4.6 处理controller层发送到biz的请求(配置spring-mvc.xml) 2.4.7 编写tag助手标签类 2.4.8 引入tld标签库 2.4.9 编写controller类 2.5 前台代码 2.5.1 主页面编写 2.5.2 修改界面编写 三、展示效果 四、实战SpringMVC增删改查的收获 一、前期准备 1.1 编写页面跳转控制类 通过PathVariable方式实现公共页面跳转。代码如下 package com.Kissship.web;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;/*** author Kissship* site www.Kissship.com* company xxx公司* create 2023-09-07-15:01** 用来处理页面跳转*/ Controller public class PageController {//a hreforder/preSave新增/a 新增界面RequestMapping(/page/{page})public String toPage(PathVariable(page) String page){return page;}RequestMapping(/page/{dir}{page})public String toDirPage(PathVariable(dir) String dir,PathVariable(page) String page){return dir / page;}}二、实现CRUD 2.1 相关依赖 pom.xml ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdkissshipssm/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packagingnamekissshipssm Maven Webapp/name!-- FIXME change it to the projects website --urlhttp://www.example.com/urlpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.plugin.version3.7.0/maven.compiler.plugin.version!--添加jar包依赖--!--1.spring 5.0.2.RELEASE相关--spring.version5.0.2.RELEASE/spring.version!--2.mybatis相关--mybatis.version3.4.5/mybatis.version!--mysql--mysql.version5.1.44/mysql.version!--pagehelper分页jar依赖--pagehelper.version5.1.2/pagehelper.version!--mybatis与spring集成jar依赖--mybatis.spring.version1.3.1/mybatis.spring.version!--3.dbcp2连接池相关 druid--commons.dbcp2.version2.1.1/commons.dbcp2.versioncommons.pool2.version2.4.3/commons.pool2.version!--4.log日志相关--log4j2.version2.9.1/log4j2.versionlog4j2.disruptor.version3.2.0/log4j2.disruptor.versionslf4j.version1.7.13/slf4j.version!--5.其他--junit.version4.12/junit.versionservlet.version4.0.0/servlet.versionlombok.version1.18.2/lombok.versionmybatis.ehcache.version1.1.0/mybatis.ehcache.versionehcache.version2.10.0/ehcache.versionredis.version2.9.0/redis.versionredis.spring.version1.7.1.RELEASE/redis.spring.versionjackson.version2.9.3/jackson.versionjstl.version1.2/jstl.versionstandard.version1.1.2/standard.versiontomcat-jsp-api.version8.0.47/tomcat-jsp-api.versioncommons-fileupload.version1.3.3/commons-fileupload.versionhibernate-validator.version5.0.2.Final/hibernate-validator.versionshiro.version1.3.2/shiro.version/propertiesdependencies!--1.spring相关--dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-beans/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-orm/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-tx/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-web/artifactIdversion${spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-test/artifactIdversion${spring.version}/version/dependency!--2.mybatis相关--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis/artifactIdversion${mybatis.version}/version/dependency!--mysql--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!--pagehelper分页插件jar包依赖--dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper/artifactIdversion${pagehelper.version}/version/dependency!--mybatis与spring集成jar包依赖--dependencygroupIdorg.mybatis/groupIdartifactIdmybatis-spring/artifactIdversion${mybatis.spring.version}/version/dependencydependencygroupIdorg.springframework/groupIdartifactIdspring-context-support/artifactIdversion${spring.version}/version/dependency!--mybatis与ehcache整合--dependencygroupIdorg.mybatis.caches/groupIdartifactIdmybatis-ehcache/artifactIdversion${mybatis.ehcache.version}/version/dependency!--ehcache依赖--dependencygroupIdnet.sf.ehcache/groupIdartifactIdehcache/artifactIdversion${ehcache.version}/version/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion${redis.version}/version/dependencydependencygroupIdorg.springframework.data/groupIdartifactIdspring-data-redis/artifactIdversion${redis.spring.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactIdversion${jackson.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-core/artifactIdversion${jackson.version}/version/dependencydependencygroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-annotations/artifactIdversion${jackson.version}/version/dependency!--3.dbcp2连接池相关--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-dbcp2/artifactIdversion${commons.dbcp2.version}/versionexclusionsexclusionartifactIdcommons-pool2/artifactIdgroupIdorg.apache.commons/groupId/exclusion/exclusions/dependencydependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactIdversion${commons.pool2.version}/version/dependency!--springmvc依赖--dependencygroupIdorg.springframework/groupIdartifactIdspring-webmvc/artifactIdversion${spring.version}/version/dependency!--4.log日志相关依赖--!-- log4j2日志相关依赖 --!-- log配置Log4j2 Slf4j --!-- slf4j核心包--dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactIdversion${slf4j.version}/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdjcl-over-slf4j/artifactIdversion${slf4j.version}/versionscoperuntime/scope/dependency!--核心log4j2jar包--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-api/artifactIdversion${log4j2.version}/version/dependencydependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion${log4j2.version}/version/dependency!--用于与slf4j保持桥接--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-slf4j-impl/artifactIdversion${log4j2.version}/version/dependency!--web工程需要包含log4j-web非web工程不需要--dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-web/artifactIdversion${log4j2.version}/versionscoperuntime/scope/dependency!--需要使用log4j2的AsyncLogger需要包含disruptor--dependencygroupIdcom.lmax/groupIdartifactIddisruptor/artifactIdversion${log4j2.disruptor.version}/version/dependency!--5.其他--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/versionscopetest/scope/dependencydependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion${servlet.version}/versionscopeprovided/scope/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/versionscopeprovided/scope/dependencydependencygroupIdjstl/groupIdartifactIdjstl/artifactIdversion${jstl.version}/version/dependencydependencygroupIdtaglibs/groupIdartifactIdstandard/artifactIdversion${standard.version}/version/dependencydependencygroupIdorg.apache.tomcat/groupIdartifactIdtomcat-jsp-api/artifactIdversion${tomcat-jsp-api.version}/version/dependencydependencygroupIdcommons-fileupload/groupIdartifactIdcommons-fileupload/artifactIdversion${commons-fileupload.version}/version/dependencydependencygroupIdorg.hibernate/groupIdartifactIdhibernate-validator/artifactIdversion${hibernate-validator.version}/version/dependency!--shiro依赖--dependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-core/artifactIdversion${shiro.version}/version/dependencydependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-web/artifactIdversion${shiro.version}/version/dependencydependencygroupIdorg.apache.shiro/groupIdartifactIdshiro-spring/artifactIdversion${shiro.version}/version/dependencydependencygroupIdorg.example/groupIdartifactIdSpring-mybatis/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope/dependency/dependenciesbuildfinalNamekissshipssm/finalNameresources!--解决mybatis-generator-maven-plugin运行时没有将XxxMapper.xml文件放入target文件夹的问题--resourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource!--解决mybatis-generator-maven-plugin运行时没有将jdbc.properites文件放入target文件夹的问题--resourcedirectorysrc/main/resources/directoryincludesinclude*.properties/includeinclude*.xml/include/includes/resource/resourcespluginsplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion${maven.compiler.plugin.version}/versionconfigurationsource${maven.compiler.source}/sourcetarget${maven.compiler.target}/targetencoding${project.build.sourceEncoding}/encoding/configuration/pluginplugingroupIdorg.mybatis.generator/groupIdartifactIdmybatis-generator-maven-plugin/artifactIdversion1.3.2/versiondependencies!--使用Mybatis-generator插件不能使用太高版本的mysql驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency/dependenciesconfigurationoverwritetrue/overwrite/configuration/pluginpluginartifactIdmaven-clean-plugin/artifactIdversion3.1.0/version/plugin!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --pluginartifactIdmaven-resources-plugin/artifactIdversion3.0.2/version/pluginpluginartifactIdmaven-compiler-plugin/artifactIdversion3.8.0/version/pluginpluginartifactIdmaven-surefire-plugin/artifactIdversion2.22.1/version/pluginpluginartifactIdmaven-war-plugin/artifactIdversion3.2.2/version/pluginpluginartifactIdmaven-install-plugin/artifactIdversion2.5.2/version/pluginpluginartifactIdmaven-deploy-plugin/artifactIdversion2.8.2/version/plugin/plugins/build/project 2.2 配置文件 web.xml ?xml version1.0 encodingUTF-8? web-app xmlnshttp://xmlns.jcp.org/xml/ns/javaeexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsdversion3.1display-nameArchetype Created Web Application/display-name!-- Spring和web项目集成start --!-- spring上下文配置文件 --context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-context.xml/param-value/context-param!-- 读取Spring上下文的监听器 --listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener!-- Spring和web项目集成end --!-- 中文乱码处理 --filterfilter-nameencodingFilter/filter-namefilter-classorg.springframework.web.filter.CharacterEncodingFilter/filter-classasync-supportedtrue/async-supportedinit-paramparam-nameencoding/param-nameparam-valueUTF-8/param-value/init-param/filterfilter-mappingfilter-nameencodingFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping!-- Spring MVC servlet --servletservlet-nameSpringMVC/servlet-nameservlet-classorg.springframework.web.servlet.DispatcherServlet/servlet-class!--此参数可以不配置默认值为/WEB-INF/springmvc-servlet.xml--init-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:spring-mvc.xml/param-value/init-paramload-on-startup1/load-on-startup!--web.xml 3.0的新特性是否支持异步--async-supportedtrue/async-supported/servletservlet-mappingservlet-nameSpringMVC/servlet-nameurl-pattern//url-pattern/servlet-mapping /web-app 2.3 逆向生成 生成后的对应目标目录如下 在生成后的HBookMapper接口中需要加上Repository给Spring进行托管。 2.4 后台代码完善 2.4.1 编写切面类 PagerAspect package com.Kissship.aspect;import com.Kissship.utils.PageBean; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component;import java.util.List;Aspect Component public class PagerAspect {Around(execution(* *..*Biz.*Pager(..)))public Object invoke(ProceedingJoinPoint args) throws Throwable {PageBean pageBeannull;Object[] ags args.getArgs();for (Object param:ags){ if (param instanceof PageBean){pageBean(PageBean)param;break; }}if (pageBean!null pageBean.isPagination()){PageHelper.startPage(pageBean.getPage(),pageBean.getRows());}Object lst args.proceed();if(pageBean!null pageBean.isPagination()){PageInfo pageInfo new PageInfo((List) lst);pageBean.setTotal((int) pageInfo.getTotal());}return lst;} } 2.4.2 编写工具类 PageBean package com.Kissship.utils;import javax.servlet.http.HttpServletRequest; import java.io.Serializable; import java.util.Map;/*** author Kissship* site www.Kissship.com* company xxx公司* create 2023-08-15-15:42*/ public class PageBean implements Serializable {private static final long serialVersionUID 2422581023658455731L;//页码private int page1;//每页显示记录数private int rows10;//总记录数private int total0;//是否分页private boolean isPaginationtrue;//上一次的请求路径private String url;//获取所有的请求参数private MapString,String[] map;public PageBean() {super();}//设置请求参数public void setRequest(HttpServletRequest req) {String pagereq.getParameter(page);String rowsreq.getParameter(rows);String paginationreq.getParameter(pagination);this.setPage(page);this.setRows(rows);this.setPagination(pagination);this.urlreq.getContextPath()req.getServletPath();this.mapreq.getParameterMap();}public String getUrl() {return url;}public void setUrl(String url) {this.url url;}public MapString, String[] getMap() {return map;}public void setMap(MapString, String[] map) {this.map map;}public int getPage() {return page;}public void setPage(int page) {this.page page;}public void setPage(String page) {if(null!page!.equals(page.trim()))this.page Integer.parseInt(page);}public int getRows() {return rows;}public void setRows(int rows) {this.rows rows;}public void setRows(String rows) {if(null!rows!.equals(rows.trim()))this.rows Integer.parseInt(rows);}public int getTotal() {return total;}public void setTotal(int total) {this.total total;}public void setTotal(String total) {this.total Integer.parseInt(total);}public boolean isPagination() {return isPagination;}public void setPagination(boolean isPagination) {this.isPagination isPagination;}public void setPagination(String isPagination) {if(null!isPagination!.equals(isPagination.trim()))this.isPagination Boolean.parseBoolean(isPagination);}/*** 获取分页起始标记位置* return*/public int getStartIndex() {//(当前页码-1)*显示记录数return (this.getPage()-1)*this.rows;}/*** 末页* return*/public int getMaxPage() {int totalpagethis.total/this.rows;if(this.total%this.rows!0)totalpage;return totalpage;}/*** 下一页* return*/public int getNextPage() {int nextPagethis.page1;if(this.pagethis.getMaxPage())nextPagethis.getMaxPage();return nextPage;}/*** 上一页* return*/public int getPreivousPage() {int previousPagethis.page-1;if(previousPage1)previousPage1;return previousPage;}Overridepublic String toString() {return PageBean [page page , rows rows , total total , isPagination isPagination ];} } 2.4.3 编写biz层 package com.Kissship.biz;import com.Kissship.model.Music; import com.Kissship.utils.PageBean;import java.util.List;public interface MusicBiz {int deleteByPrimaryKey(Integer mid);int insert(Music record);int insertSelective(Music record);Music selectByPrimaryKey(Integer mid);int updateByPrimaryKeySelective(Music record);int updateByPrimaryKey(Music record);ListMusic listPager(Music music, PageBean pageBean); } 注 这个方法为查询返回列表方法包含分页因为切面类对其进行切面所以在命名时必须以Pager结尾。 2.4.4 配置mapper.xml select idselectBycon resultTypecom.Kissship.model.Music parameterTypecom.Kissship.model.Music selectinclude refidBase_Column_List /from jay_musicwhereif testmname ! nulland mname like concat(%,#{mname},%)/if/where/select 2.4.5 编写相应接口类MusicMapper 在自动生成的代码下添加以下 ListMusic selectBycon(Music music); 2.4.6 处理controller层发送到biz的请求(配置spring-mvc.xml) 代码如下 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:aophttp://www.springframework.org/schema/aopxmlns:mvchttp://www.springframework.org/schema/mvcxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.3.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd!--1) 扫描com.Kissship及子子孙孙包下的控制器(扫描范围过大耗时)--context:component-scan base-packagecom.Kissship/!--2) 此标签默认注册DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter --mvc:annotation-driven /!--3) 创建ViewResolver视图解析器 --bean classorg.springframework.web.servlet.view.InternalResourceViewResolver!-- viewClass需要在pom中引入两个包standard.jar and jstl.jar --property nameviewClassvalueorg.springframework.web.servlet.view.JstlView/propertyproperty nameprefix value/WEB-INF/jsp//property namesuffix value.jsp//bean!--4) 单独处理图片、样式、js等资源 --!-- mvc:resources location/css/ mapping/css/**/mvc:resources location/js/ mapping/js/**/mvc:resources locationWEB-INF/images/ mapping/images/**/--mvc:resources location/static/ mapping/static/**/!-- 处理controller层发送请求到biz会经过切面的拦截处理--aop:aspectj-autoproxy/ /beans 2.4.7 编写tag助手标签类 PageTag package com.Kissship.tag;import com.Kissship.utils.PageBean;import javax.servlet.jsp.JspException; import javax.servlet.jsp.JspWriter; import javax.servlet.jsp.tagext.BodyTagSupport; import java.io.IOException; import java.util.Map; import java.util.Map.Entry; import java.util.Set;public class PageTag extends BodyTagSupport{private PageBean pageBean;// 包含了所有分页相关的元素public PageBean getPageBean() {return pageBean;}public void setPageBean(PageBean pageBean) {this.pageBean pageBean;}Overridepublic int doStartTag() throws JspException { // 没有标签体要输出内容JspWriter out pageContext.getOut();try {out.print(toHTML());} catch (IOException e) {e.printStackTrace();}return super.doStartTag();}private String toHTML() {StringBuffer sb new StringBuffer(); // 隐藏的form表单---这个就是上一次请求下次重新发的奥义所在 // 上一次请求的URLsb.append(form actionpageBean.getUrl() idpageBeanForm methodpost);sb.append( input typehidden namepage); // 上一次请求的参数MapString, String[] paramMap pageBean.getMap();if(paramMap ! null paramMap.size() 0) {SetEntryString, String[] entrySet paramMap.entrySet();for (EntryString, String[] entry : entrySet) { // 参数名String key entry.getKey(); // 参数值for (String value : entry.getValue()) { // 上一次请求的参数再一次组装成了新的Form表单 // 注意page参数每次都会提交我们需要避免if(!page.equals(key)) {sb.append( input typehidden namekey valuevalue );}}}}sb.append(/form);// 分页条sb.append(ul classpagination justify-content-center);sb.append( li classpage-item (pageBean.getPage() 1 ? disabled : )a classpage-link);sb.append( hrefjavascript:gotoPage(1)首页/a/li);sb.append( li classpage-item (pageBean.getPage() 1 ? disabled : )a classpage-link);sb.append( hrefjavascript:gotoPage(pageBean.getPreivousPage())lt;/a/li);// less than 小于号 // sb.append( li classpage-itema classpage-link href#1/a/li); // sb.append( li classpage-itema classpage-link href#2/a/li);sb.append( li classpage-item activea classpage-link href#pageBean.getPage()/a/li);sb.append( li classpage-item (pageBean.getPage() pageBean.getMaxPage() ? disabled : )a classpage-link hrefjavascript:gotoPage(pageBean.getNextPage())gt;/a/li);sb.append( li classpage-item (pageBean.getPage() pageBean.getMaxPage() ? disabled : )a classpage-link hrefjavascript:gotoPage(pageBean.getMaxPage())尾页/a/li);sb.append( li classpage-item go-inputb到第/binput classpage-link);sb.append( typetext idskipPage name /b页/b/li);sb.append( li classpage-item goa classpage-link);sb.append( hrefjavascript:skipPage()确定/a/li);sb.append( li classpage-itemb共pageBean.getTotal()条/b/li);sb.append(/ul);// 分页执行的JS代码sb.append(script typetext/javascript);sb.append( function gotoPage(page) {);sb.append( document.getElementById(pageBeanForm).page.value page;);sb.append( document.getElementById(pageBeanForm).submit(););sb.append( });sb.append( function skipPage() {);sb.append( var page document.getElementById(skipPage).value;);sb.append( if (!page || isNaN(page) || parseInt(page) 1 || parseInt(page) pageBean.getMaxPage()) {);sb.append( alert(请输入1~pageBean.getMaxPage()的数字););sb.append( return;);sb.append( });sb.append( gotoPage(page););sb.append( });sb.append(/script);return sb.toString();} }2.4.8 引入tld标签库 kissship.tld ?xml version1.0 encodingUTF-8 ?taglib xmlnshttp://java.sun.com/xml/ns/j2eexmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsdversion2.0descriptionkissship 1.1 core library/descriptiondisplay-namekissship core/display-nametlib-version1.1/tlib-versionshort-namekissship/short-nameurihttp://jsp.veryedu.cn/uritagnamepage/nametag-classcom.Kissship.tag.PageTag/tag-classbody-contentJSP/body-contentattributenamepageBean/namerequiredtrue/requiredrtexprvaluetrue/rtexprvalue/attribute/tag/taglib2.4.9 编写controller类 MusicController package com.Kissship.web;import com.Kissship.biz.MusicBiz; import com.Kissship.model.Music; import com.Kissship.utils.PageBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest; import java.util.List;/*** author Kissship* site www.Kissship.com* company xxx公司* create 2023-09-08-15:15*/ Controller RequestMapping(/mic) public class MusicController {Autowiredprivate MusicBiz musicBiz;// 增RequestMapping(/add)public String add(Music music, HttpServletRequest Request) {int i musicBiz.insertSelective(music);return redirect:list;}// 删RequestMapping(/del/{bid})public String del(PathVariable(bid)Integer bid) {musicBiz.deleteByPrimaryKey(bid);return redirect:/mic/list;}// 改RequestMapping(/edit)public String edit(Music music, HttpServletRequest Request) {musicBiz.updateByPrimaryKeySelective(music);return redirect:list;}// 查RequestMapping(/list)public String list(Music music, HttpServletRequest Request) {//music是用来接受前台传递后台的参数PageBean pageBean new PageBean();pageBean.setRequest(Request);ListMusic music1 musicBiz.listPager(music, pageBean);Request.setAttribute(lst, music1);Request.setAttribute(pageBean, pageBean);//WEB-INF/jsp/mic/list.jspreturn mic/list;}//数据回显RequestMapping(/preSave)public String preSave(Music music, Model model) {if (music ! null music.getMid() ! null music.getMid() ! 0) {Music m musicBiz.selectByPrimaryKey(music.getMid());model.addAttribute(c,m);}return mic/edit;} } 到此我们的后台代码编写完成了接下来就是前端代码的编写。  2.5 前台代码 2.5.1 主页面编写 作用展示数据进行一系列操作。 list.jsp % page languagejava contentTypetext/html; charsetUTF-8pageEncodingUTF-8% % taglib urihttp://jsp.veryedu.cn prefixz% % taglib urihttp://java.sun.com/jsp/jstl/core prefixc% !DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd html headmeta http-equivContent-Type contenttext/html; charsetUTF-8linkhrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/css/bootstrap.cssrelstylesheetscriptsrchttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.0/js/bootstrap.js/scripttitleJayChou歌单列表/titlestyle typetext/css.page-item input {padding: 0;width: 40px;height: 100%;text-align: center;margin: 0 6px;}.page-item input, .page-item b {line-height: 38px;float: left;font-weight: 400;}.page-item.go-input {margin: 0 10px;}/style /head body form classform-inlineaction${pageContext.request.contextPath }/mic/list methodpostdiv classform-group mb-2input typetext classform-control-plaintext namemnameplaceholder请输入歌曲名称!-- input namerows value20 typehidden --!-- 不想分页 -- %-- input namepagination valuefalse typehidden--%/divbutton typesubmit classbtn btn-primary mb-2查询/buttona classbtn btn-primary mb-2 href${pageContext.request.contextPath }/mic/preSave新增/a /formtable classtable table-stripedtheadtrth scopecol歌曲编号/thth scopecol歌曲名称/thth scopecol歌曲专辑/thth scopecol歌曲歌词/thth scopecol歌曲图片/th/tr/theadtbodyc:forEach varb items${lst }trtd${b.mid }/tdtd${b.mname }/tdtd${b.mtype }/tdtd${b.minfo }/tdtd${b.mpic }/tdtda href${pageContext.request.contextPath }/mic/preSave?mid${b.mid}修改/aa href${pageContext.request.contextPath }/mic/del/${b.mid}删除/a/td/tr/c:forEach/tbody /table !-- 这一行代码就相当于前面分页需求前端的几十行了 -- z:page pageBean${pageBean }/z:page ${pageBean } /body /html 2.5.2 修改界面编写 作用操作数据。 edit.jsp % page contentTypetext/html;charsetUTF-8 languagejava % html headtitle编辑歌单界面/title /head body form action${pageContext.request.contextPath }/${empty c ? mic/add : mic/edit} methodpost歌曲编号:input typetext namemid value${c.mid }br歌曲名称:input typetext namemname value${c.mname }br歌曲专辑:input typetext namemtype value${c.mtype }br歌曲歌词:input typetext nameminfo value${c.minfo }br歌曲图片:input typetext namempic value${c.mpic }brinput typesubmit /form /body /html三、展示效果 控制台效果 主页增删改查展示效果 四、实战SpringMVC增删改查的收获 熟悉SpringMVC框架通过实践可以更深入地理解SpringMVC框架的工作原理和核心概念如控制器、视图解析器、数据绑定等。 掌握请求处理和数据交互实践中的增删改查操作涉及到请求处理和数据库数据交互可以加深对请求的处理方式和数据库操作的理解。 强化编程技能实战中需要编写具体的代码实现增删改查功能可以提高编程能力尤其是对Java和SpringMVC的理解和熟练度。 学习最佳实践通过实践可以学习到SpringMVC增删改查的最佳实践包括使用合适的设计模式、优化数据库查询性能、错误处理等方面的经验。 增加项目经验实战增删改查可以让您在实际项目中积累经验对项目的整体流程和开发周期有更深入的认识。 提升自信心通过实际操作和实践可以提高对SpringMVC增删改查功能的自信心为日后更复杂的项目开发打下基础。 请注意SpringMVC是一个开源框架通过参与实战项目可以更好地理解和应用它。同时实践中也会遇到挑战和问题但通过解决问题和学习可以不断进步和成长。 最后实战SpringMVC之CRUD就到这里祝大家在敲代码的路上一路通畅! 感谢大家的观看 !
http://www.zqtcl.cn/news/140840/

相关文章:

  • 南昌市有帮做网站的吗网站联动
  • 英文网站建设服务合同模板网站详情页艺术字怎么做的
  • discuz仿搜索网站做网站开发用哪种语言好
  • 企业网站服务网络设备维护是做什么的
  • 罗湖网站公司网站服务器建设合同
  • 公司网站设计注意什么免费名字设计成图案
  • python3 网站建设济南网站建设(选 聚搜网络)
  • 建网站在哪里做广告上海 网站撤销备案
  • 个人可以备案几个网站做网站和网站页面设计
  • 拉丝机东莞网站建设下载安装百度一下
  • 河北建设厅官方网站山西手动网站建设推广
  • 连云港网站建设开发网络营销顾问服务
  • 怎么做网站免有什么网站可以免费建站
  • 安全的营销型网站建设深圳网站建设哪家
  • wordpress能开发商城网站吗seo软件
  • 广东网站建设制作价格低网页升级访问中每天正常更新中
  • 北京市门头沟有没有做网站的小水库运行管理培训教材久久建筑网
  • 免费手机网站app软文推广发稿
  • 安徽网站制作公司建设银行校招网站入口
  • 专业的网站公司到哪里找会员网站模板
  • 山西城乡和建设厅网站首页应用公园下载
  • 自动优化网站建设电话wordpress 后端
  • 淘客网站怎么做啊做网站是什么工作
  • 新媒体 网站建设 管理规范专门卖医疗器械的网站
  • 高水平建设专业网站微商城网站建设平台合同
  • 策划的网站在哪个网站做一照一码
  • wordpress页面如何排序网站优化推广软件
  • 网站描述和关键词怎么写智慧团建网站pc端
  • 苏州营销型网站建设推广医院做网站备案需要哪些资料
  • 怎么看是哪家做的网站呼市浩特网站建设