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

當前位置: 首頁 > news >正文

專業(yè)邯鄲網站建設百度識圖軟件

專業(yè)邯鄲網站建設,百度識圖軟件,深圳醫(yī)療網站建設,廣西醫(yī)科大學網站建設這篇文章包含spring mvc的默認數據類型綁定和簡單數據類型綁定。內容來自實驗。 準備: (1)在IDEA環(huán)境中從archetye創(chuàng)建webapp類型的maven項目exp6。 (2)在src\main目錄下創(chuàng)建并標注java源代碼文件夾和resources資源文…

這篇文章包含spring mvc的默認數據類型綁定和簡單數據類型綁定。內容來自實驗。


準備:

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

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

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

<!-- 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并完成相關配置。

<?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><!-- 配置初始化參數,讀取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啟動項。在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啟動項,使用命令tomcat7:run啟動應用程序。

項目目錄結構如下:

?


?

數據綁定:

1.默認數據類型綁定

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

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);}
}

啟動項目后,訪問地址http://localhost:8080/exp6/getUserId?userid=2,控制臺打印userid信息如下:

2.簡單數據類型綁定

1)在UserController類中新增getUserNameAndId( )方法,用來接收客戶端請求中的用戶名和id參數。

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

?訪問地址http://localhost:8080/exp6/getUserNameAndId?username=Spring&id=1,運行結果如下:

2@RequestParam注解來定義參數的別名,完成請求參數名稱和處理器的形參名稱不一致時的數據綁定。在UserController類中新增getUserName ( )方法,給username形參定義了別名name,同時設定了請求的name參數不是必須的,訪問沒攜帶name參數時會將defaultValue屬性設定的值賦給形參username。

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

?訪問http://localhost:8080/exp6/getUserName?name=Spring,運行結果如下:

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

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

?

4POJO綁定:POJO類型的數據綁定就是將所有關聯的請求參數封裝在一個POJO中,然后在方法中直接使用該POJO作為形參來完成數據綁定。

src\main\java目錄下,創(chuàng)建一個com.itheima.pojo包,在該包下創(chuàng)建一個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( )方法用于接收用戶注冊信息。

// 接收表單用戶信息@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文件,編寫用戶注冊表單。

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"><title>注冊</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="注冊"/>
</form>
</body>
</html>

啟動后訪問地址http://localhost:8080/exp6/register.jsp,結果如下:

分別填寫注冊的用戶名和密碼,點擊“注冊”按鈕完成數據的提交,控制臺打印信息:

注:輸入的用戶名為中文時,控制臺打印信息可能會出現亂碼,可以使用Spring提供的編碼過濾器來統(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)自定義類型轉換器:Spring MVC默認提供了一些常用的類型轉換器,然而默認類型轉換器并不能將提交的參數轉換為所有的類型。此時需要開發(fā)者自定義類型轉換器,來將參數轉換為程序所需要的類型。

①下面演示自定義類型轉換器轉換特殊數據類型并完成數據綁定,實現Date類型的數據綁定。

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

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("無效的日期格式,請使用這種格式:"+datePattern);}}
}

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

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

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

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

啟動后訪問地址http://localhost:8080/exp6/getBirthday?birthday=2020-11-11,控制臺打印信息:

②上述方法中日期類型的格式轉換是基于XML配置自定義轉換器實現的。除了XML方式之外,還可以通過@DateTimeFormat注解來簡化日期類型的格式轉換,無需自定義轉換器,也無需在配置文件中定義轉換器工廠或格式化工廠。

將上述在spring-mvc.xml中配置的轉換器工廠和自定義類型轉換器都刪除,由于注解方式的類型轉換依賴注解驅動的支持,配置文件中必須顯式定義<mvc:annotation-driven>元素,此時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><!-- 配置注解驅動 --><mvc:annotation-driven />
</beans>

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

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

啟動項目,訪問http://localhost:8080/exp6/getBirthday?birthday=2020-11-11,控制臺打印信息:

?


復雜數據類型綁定下次再寫。


加油加油^_^

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

相關文章:

  • 網站模版怎么做網絡營銷軟文范例500
  • 網絡推廣加盟項目怎么給網站做優(yōu)化
  • 手機怎么做三個視頻網站淘寶代運營公司十大排名
  • 購物商城論文關鍵詞優(yōu)化的策略
  • 在深圳做網站多少錢谷歌seo軟件
  • 廣州天河區(qū)小學排名上海seo網站策劃
  • 網絡營銷網站建設實訓百度大全下載
  • 對網站建設過程seo關鍵詞排名技巧
  • 貴陽網站建設專家it培訓學校
  • 黑馬程序員培訓靠譜嗎seo搜索引擎的優(yōu)化
  • 南寧網站設計企業(yè)qq一年多少費用
  • 山西省住房建設廳網站首頁太原seo網站優(yōu)化
  • 設計工作室網站首頁線下營銷推廣方式有哪些
  • 中間商網站怎么做市場調研報告包括哪些內容
  • 西安旅游攻略2天自由行攻略seo每日一貼
  • 那些網站可做代購博為峰軟件測試培訓學費
  • 淘寶聯盟建網站網站推廣優(yōu)化公司
  • 網站建設維護多少錢企業(yè)建站公司
  • wordpress彈出廣告seo搜索引擎優(yōu)化工程師招聘
  • 怎么做阿里媽媽推廣網站怎么做信息流廣告代理商
  • 網站建設 010東莞網絡營銷優(yōu)化
  • 株洲網紅網站優(yōu)化怎么操作
  • 濟南做網站最好的公司鎮(zhèn)江網站制作公司
  • 昆明學校網站建設室內設計培訓
  • 中山網站建設技術如何做seo優(yōu)化
  • 網站 設計 分辨率萬網域名注冊信息查詢
  • 網站企業(yè)快速備案流程免費的云服務器有哪些
  • 不備案的網站能上去嗎寧波seo怎么做優(yōu)化
  • 開發(fā)票在哪個網站開競價托管 微競價
  • 怎么做移動網站嗎網絡推廣服務協議