国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

聚美優(yōu)品網(wǎng)站怎么做的最新的即時(shí)比分

聚美優(yōu)品網(wǎng)站怎么做的,最新的即時(shí)比分,企業(yè)logo設(shè)計(jì)app,單位網(wǎng)站的作用這篇文章包含spring mvc的默認(rèn)數(shù)據(jù)類型綁定和簡(jiǎn)單數(shù)據(jù)類型綁定。內(nèi)容來(lái)自實(shí)驗(yàn)。 準(zhǔn)備: (1)在IDEA環(huán)境中從archetye創(chuàng)建webapp類型的maven項(xiàng)目exp6。 (2)在src\main目錄下創(chuàng)建并標(biāo)注java源代碼文件夾和resources資源文…

這篇文章包含spring mvc的默認(rèn)數(shù)據(jù)類型綁定和簡(jiǎn)單數(shù)據(jù)類型綁定。內(nèi)容來(lái)自實(shí)驗(yàn)。


準(zhǔn)備:

1)在IDEA環(huán)境中從archetye創(chuàng)建webapp類型的maven項(xiàng)目exp6

2)在src\main目錄下創(chuàng)建并標(biāo)注java源代碼文件夾和resources資源文件夾。

3)在pom.xml文件中,添加Spring MVC的相關(guān)依賴。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.2.5.RELEASE</version></dependency><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.8.RELEASE</version></dependency>

?4)在resources文件夾下創(chuàng)建配置文件spring-mvc.xml并完成相關(guān)配置。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置創(chuàng)建 springMVC 容器要掃描的包  --><context:component-scan base-package="com.itheima.controller"></context:component-scan><!-- 配置視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean>
</beans>

?5)配置web.xml文件。

<?xml version="1.0" encoding="UTF-8"?>
<web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>DispatcherServlet</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化參數(shù),讀取Spring MVC的配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

?6)配置Maven啟動(dòng)項(xiàng)。在pom.xml文件中引入tomcat插件:

<plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version><configuration><port>8080</port><path>/exp6</path></configuration></plugin>

添加Maven啟動(dòng)項(xiàng),使用命令tomcat7:run啟動(dòng)應(yīng)用程序。

項(xiàng)目目錄結(jié)構(gòu)如下:

?


?

數(shù)據(jù)綁定:

1.默認(rèn)數(shù)據(jù)類型綁定

src\main\java文件夾下創(chuàng)建com.itheima.controller的類包,在類包中創(chuàng)建UserController類,在UserController類中定義方法getUserId( ),用于獲取客戶端請(qǐng)求中userid參數(shù)的值。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;import javax.servlet.http.HttpServletRequest;@Controller
public class UserController {@RequestMapping("/getUserId")public void getUserId(HttpServletRequest request){String userid= request.getParameter("userid");System.out.println("userid="+userid);}
}

啟動(dòng)項(xiàng)目后,訪問(wèn)地址http://localhost:8080/exp6/getUserId?userid=2,控制臺(tái)打印userid信息如下:

2.簡(jiǎn)單數(shù)據(jù)類型綁定

1)在UserController類中新增getUserNameAndId( )方法,用來(lái)接收客戶端請(qǐng)求中的用戶名和id參數(shù)。

@RequestMapping("/getUserNameAndId")public void getUserNameAndId(String username,Integer id) {System.out.println("username="+username+", id="+id);}

?訪問(wèn)地址http://localhost:8080/exp6/getUserNameAndId?username=Spring&id=1,運(yùn)行結(jié)果如下:

2@RequestParam注解來(lái)定義參數(shù)的別名,完成請(qǐng)求參數(shù)名稱和處理器的形參名稱不一致時(shí)的數(shù)據(jù)綁定。在UserController類中新增getUserName ( )方法,給username形參定義了別名name,同時(shí)設(shè)定了請(qǐng)求的name參數(shù)不是必須的,訪問(wèn)沒(méi)攜帶name參數(shù)時(shí)會(huì)將defaultValue屬性設(shè)定的值賦給形參username。

@RequestMapping("/getUserName")public void getUserName(@RequestParam(value="name", required = false,defaultValue = "itheima") String username){System.out.println("username="+username);}

?訪問(wèn)http://localhost:8080/exp6/getUserName?name=Spring,運(yùn)行結(jié)果如下:

?3)使用@PathVariable注解將URL中占位符參數(shù)綁定到處理器的形參中。在UserController類中新增getPathVariable( )方法, value屬性將占位符參數(shù)“name”和處理方法的參數(shù)username進(jìn)行綁定。

@RequestMapping("/user/{name}")public void getPathVariable(@PathVariable(value = "name") String username){System.out.println("username="+username);}

?

4POJO綁定:POJO類型的數(shù)據(jù)綁定就是將所有關(guān)聯(lián)的請(qǐng)求參數(shù)封裝在一個(gè)POJO中,然后在方法中直接使用該POJO作為形參來(lái)完成數(shù)據(jù)綁定。

src\main\java目錄下,創(chuàng)建一個(gè)com.itheima.pojo包,在該包下創(chuàng)建一個(gè)User類封裝用戶信息。

public class User {private String username;		//用戶名private String password;		//用戶密碼public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

?UserController.java類中,定義registerUser( )方法用于接收用戶注冊(cè)信息。

// 接收表單用戶信息@RequestMapping("/registerUser")public void registerUser(User user) {String username = user.getUsername();String password = user.getPassword();System.out.println("username="+username+",password="+password);}

src\main\webapp目錄下,創(chuàng)建register.jsp文件,編寫用戶注冊(cè)表單。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>注冊(cè)</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/registerUser" method="post">用戶名:<input type="text" name="username" /><br />密&nbsp;&nbsp;&nbsp;碼:<input type="password" name="password" /><br /><input type="submit" value="注冊(cè)"/>
</form>
</body>
</html>

啟動(dòng)后訪問(wèn)地址http://localhost:8080/exp6/register.jsp,結(jié)果如下:

分別填寫注冊(cè)的用戶名和密碼,點(diǎn)擊“注冊(cè)”按鈕完成數(shù)據(jù)的提交,控制臺(tái)打印信息:

注:輸入的用戶名為中文時(shí),控制臺(tái)打印信息可能會(huì)出現(xiàn)亂碼,可以使用Spring提供的編碼過(guò)濾器來(lái)統(tǒng)一編碼,只需要在web.xml中添加如下代碼:

<filter><filter-name>CharacterEncodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

5)自定義類型轉(zhuǎn)換器:Spring MVC默認(rèn)提供了一些常用的類型轉(zhuǎn)換器,然而默認(rèn)類型轉(zhuǎn)換器并不能將提交的參數(shù)轉(zhuǎn)換為所有的類型。此時(shí)需要開發(fā)者自定義類型轉(zhuǎn)換器,來(lái)將參數(shù)轉(zhuǎn)換為程序所需要的類型。

①下面演示自定義類型轉(zhuǎn)換器轉(zhuǎn)換特殊數(shù)據(jù)類型并完成數(shù)據(jù)綁定,實(shí)現(xiàn)Date類型的數(shù)據(jù)綁定。

在項(xiàng)目src\main\java目錄下,創(chuàng)建一個(gè)com.itheima.convert包,在該包下創(chuàng)建日期轉(zhuǎn)換類DateConverter,并在DateConverter類中定義convert()方法, 實(shí)現(xiàn)String類型轉(zhuǎn)到Date類型的轉(zhuǎn)換。

import org.springframework.core.convert.converter.Converter;import java.text.SimpleDateFormat;
import java.util.Date;public class DateConverter implements Converter<String, Date> {private String datePattern = "yyyy-MM-dd";//定義日期格式@Overridepublic Date convert(String source) {SimpleDateFormat sdf = new SimpleDateFormat(datePattern);try {return sdf.parse(source);} catch (Exception e) {throw new IllegalArgumentException("無(wú)效的日期格式,請(qǐng)使用這種格式:"+datePattern);}}
}

還需要在配置文件spring-mvc.xml中配置類型轉(zhuǎn)換器。

<!-- 配置類型轉(zhuǎn)換器工廠 --><bean id="converterService" class="org.springframework.context.support.ConversionServiceFactoryBean"><!-- 給工廠注入一個(gè)新的類型轉(zhuǎn)換器,配置自定義類型轉(zhuǎn)換器 --><property name="converters"><array><bean class="com.itheima.convert.DateConverter"/></array></property></bean><mvc:annotation-driven conversion-service="converterService"/>

UserController.java類中定義方法getBirthday(),用于綁定客戶端請(qǐng)求中的日期數(shù)據(jù)。

/*** 使用自定義類型數(shù)據(jù)綁定日期數(shù)據(jù)*/@RequestMapping("/getBirthday")public void getBirthday(Date birthday) {System.out.println("birthday="+birthday);}

啟動(dòng)后訪問(wèn)地址http://localhost:8080/exp6/getBirthday?birthday=2020-11-11,控制臺(tái)打印信息:

②上述方法中日期類型的格式轉(zhuǎn)換是基于XML配置自定義轉(zhuǎn)換器實(shí)現(xiàn)的。除了XML方式之外,還可以通過(guò)@DateTimeFormat注解來(lái)簡(jiǎn)化日期類型的格式轉(zhuǎn)換,無(wú)需自定義轉(zhuǎn)換器,也無(wú)需在配置文件中定義轉(zhuǎn)換器工廠或格式化工廠。

將上述在spring-mvc.xml中配置的轉(zhuǎn)換器工廠和自定義類型轉(zhuǎn)換器都刪除,由于注解方式的類型轉(zhuǎn)換依賴注解驅(qū)動(dòng)的支持,配置文件中必須顯式定義<mvc:annotation-driven>元素,此時(shí)spring-mvc.xml中的代碼如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"><!-- 配置創(chuàng)建 springMVC 容器要掃描的包  --><context:component-scan base-package="com.itheima.controller"></context:component-scan><!-- 配置視圖解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages/"/><property name="suffix" value=".jsp"/></bean><!-- 配置注解驅(qū)動(dòng) --><mvc:annotation-driven />
</beans>

修改UserController.java類中getBirthday()方法,修改后的具體代碼如下。

/*** 使用@DateTimeFormat注解綁定日期數(shù)據(jù)*/@RequestMapping("/getBirthday")public void getBirthday(@DateTimeFormat(pattern = "yyyy-MM-dd")Date birthday) {System.out.println("birthday="+birthday);}

啟動(dòng)項(xiàng)目,訪問(wèn)http://localhost:8080/exp6/getBirthday?birthday=2020-11-11,控制臺(tái)打印信息:

?


復(fù)雜數(shù)據(jù)類型綁定下次再寫。


加油加油^_^

http://m.aloenet.com.cn/news/43203.html

相關(guān)文章:

  • 白糖貿(mào)易怎么做網(wǎng)站廈門seo公司到1火星
  • 外貿(mào)網(wǎng)站建設(shè)設(shè)計(jì)杭州做seo的公司
  • 微信h5免費(fèi)制作網(wǎng)站seo優(yōu)化與推廣招聘
  • 招聘網(wǎng)站怎么做營(yíng)銷軟文代寫平臺(tái)
  • 個(gè)人網(wǎng)站可以做淘寶客杭州網(wǎng)站推廣平臺(tái)
  • 商城網(wǎng)站建站深圳優(yōu)化seo排名
  • 如果做鏡像網(wǎng)站360廣告投放平臺(tái)
  • 北京的網(wǎng)站設(shè)計(jì)公司線上營(yíng)銷策劃方案
  • 重慶做網(wǎng)站微信的公司提高搜索引擎檢索效果的方法
  • 郴州seo快速排名關(guān)鍵詞優(yōu)化排名工具
  • 重慶市建設(shè)工程信息網(wǎng)一體化平臺(tái)河源市企業(yè)網(wǎng)站seo價(jià)格
  • 手機(jī)網(wǎng)站排名優(yōu)化軟件網(wǎng)絡(luò)營(yíng)銷推廣方式都有哪些
  • 遼寧省網(wǎng)站制作公司排名怎樣在百度發(fā)廣告貼
  • html5網(wǎng)站優(yōu)點(diǎn)優(yōu)化推廣網(wǎng)站怎么做最好
  • 鄭州網(wǎng)站建設(shè)培訓(xùn)短期班營(yíng)銷推廣怎么做
  • ??谧鼍W(wǎng)站10大品牌優(yōu)化大師使用心得
  • 淘客優(yōu)惠券推廣網(wǎng)站怎么做客戶營(yíng)銷
  • 阿里云怎么做網(wǎng)站滄浪seo網(wǎng)站優(yōu)化軟件
  • 學(xué)完html怎么做網(wǎng)站網(wǎng)絡(luò)營(yíng)銷工程師培訓(xùn)
  • 做電影網(wǎng)站程序哪個(gè)好360網(wǎng)站安全檢測(cè)
  • 誰(shuí)知道深圳松崗天橋旁的網(wǎng)站建設(shè)營(yíng)銷軟文200字
  • apache 創(chuàng)建網(wǎng)站網(wǎng)絡(luò)公司網(wǎng)站建設(shè)
  • 杭州的網(wǎng)站建設(shè)公司哪家好網(wǎng)絡(luò)營(yíng)銷是以什么為基礎(chǔ)
  • 怎么做網(wǎng)站聊天視頻直播進(jìn)入百度官網(wǎng)
  • 網(wǎng)站開發(fā)的測(cè)試計(jì)劃全網(wǎng)營(yíng)銷軟件
  • 諸城 網(wǎng)站 建設(shè)企業(yè)應(yīng)該如何進(jìn)行網(wǎng)站推廣
  • 云南熱搜科技做網(wǎng)站不給源碼seo這個(gè)職位是干什么的
  • 企業(yè)網(wǎng)站制作模板免費(fèi)下載做seo需要哪些知識(shí)
  • 如何自己建設(shè)電影網(wǎng)站制作網(wǎng)站需要什么
  • 網(wǎng)站手機(jī)訪問(wèn)跳轉(zhuǎn)萬(wàn)網(wǎng)官網(wǎng)域名注冊(cè)