1. 程式人生 > >Struts2 學習筆記 —— 10 —— Action接收引數時的中文亂碼問題

Struts2 學習筆記 —— 10 —— Action接收引數時的中文亂碼問題

在Struts接收引數時,如果輸入中文,那麼可能就會出現亂碼問題

首先寫一個index.jsp

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<% String context = request.getContextPath(); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>

	使用DomainModel接收引數,測試中文問題<br><br>
	<form action="<%= context%>/user/user!add">
	姓名:<input type="text" name="user.name"></input><br><br>
	密碼:<input type="password" name="user.password"></input><br><br>
	<input type="submit" value="submit"> 
	</form>
	
</body>
</html>

我們發現使用Action傳引數的時候使用POST方式也是可以的(之前用的都是GET方式傳的引數)

結果發現輸入中文後Action接收到的中文都是亂碼

接收結果:

處理的方式應當是在struts.xml中加入

<constant name="struts.i18n.encoding" value="GBK" />

這句話會指定action的編碼方式,將覆蓋預設的struts的設定

PS:預設的struts的設定在這裡

但是!!貌似加了這句話以後不管用,不知道是struts的bug還是出於什麼考慮

解決辦法:

1、可以再struts的filter之前配一個filter,更改request的值

2、不再使用struts2.1的配置,使用2.0的配置,見web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>Struts2_0600_ActionWildcard</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	
	<filter>
		<filter-name>struts2</filter-name>
		<!-- <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> -->
		<filter-class>org.apache.struts2.dispatcher.FilterDispacher</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

不知道有沒有什麼後遺症(我使用的2.3.16版本實驗失敗)

相關推薦

Struts2 學習筆記 —— 10 —— Action接收引數中文亂碼問題

在Struts接收引數時,如果輸入中文,那麼可能就會出現亂碼問題 首先寫一個index.jsp <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding=

吳恩達機器學習筆記 —— 10 神經網路引數的反向傳播演算法

本篇講述了神經網路的誤差反向傳播以及訓練一個神經網路模型的流程 神經網路可以理解為兩個過程:訊號的正向傳播和誤差的反向傳播。在正向的傳播過程中,計算方法為Sj=wijxi+bj,其中i是樣本、j是層數。然後xj=f(Sj),f為啟用函式。引入啟用函式的原因是可以

Struts2 學習筆記10--宣告式異常處理

宣告式異常處理 在程式中出現異常可以儘管往外拋,由統一介面做頁面處理 程式碼: 服務層:丟擲異常 public List<Category> list() throws SQLException { Connection conn = DB.

Java後端取前端傳遞的引數中文亂碼

處理的方式有: 1、直接在後臺程式碼進行處理:String id = new String(str.getBytes(“ISO8859-1”), “utf-8”)。 2、修改tomcat的server.xml檔案,增加URIEncoding配置: <Connector port

SpringMVC學習系列-後記 解決GET請求中文亂碼的問題

之前專案中的web.xml中的編碼設定: <filter> <filter-name>CharacterEncoding</filter-name> <filter-class>org.springframework.w

Struts2學習筆記系列之引數接收

1.前言 俗話說“打鐵要趁熱”,趁著自己的勁頭還未消失,關於struts2又學了一點點(囧),就再寫一篇部落格吧,就當鞏固自己剛學的這一點點知識了。 2.struts2結果跳轉方式 方式1:轉發 <result name="success" type=

[struts2學習筆記] 第五節 編寫struts2action代碼

添加 request 處理流程 tail struts2 eight 顯示 學習筆記 extjs 本文地址:http://blog.csdn.net/sushengm

TI CC2530 學習筆記-10-NewBit-CC2530-UART0-接收

TI CC2530 學習筆記-目錄 TI CC2530 學習筆記-10-NewBit-CC2530-UART0-接收 功能:串列埠接收資料的功能,向CC2530模組傳送"1"則底板上的紅色LED開啟,傳送"0"則底板上的紅色LED關閉,傳送"2"則改變LED狀態。 定時器的功

Struts2學習筆記:DMI,多個配置檔案,預設Action,字尾

動態方法呼叫有三種方法: 1.同一Action多次對映,每個action標籤的method對應要呼叫的方法。 當要呼叫的方法多了就會增加struts.xml檔案的複雜性。 2.struts.DynamicMethodInvocation=true (struts.properties檔案) 或<

Caffe學習筆記10:solver.prototxt各引數設定

caffe solver.prototxt引數意義與設定 batchsize:每迭代一次,網路訓練圖片的數量,例如:如果你的batchsize=256,則你的網路每迭代一次,訓練256張圖片;則,如果你的總圖片張數為1280000張,則要想將你所有的圖片通過

機器學習實戰(Machine Learning in Action學習筆記————10.奇異值分解(SVD)原理、基於協同過濾的推薦引擎、資料降維

關鍵字:SVD、奇異值分解、降維、基於協同過濾的推薦引擎作者:米倉山下時間:2018-11-3機器學習實戰(Machine Learning in Action,@author: Peter Harrington)原始碼下載地址:https://www.manning.com/books/machine-le

機器學習實戰(Machine Learning in Action學習筆記————10.奇異值分解(SVD)原理、基於協同過濾的推薦引擎、數據降維

www 實現 由於 就是 計算 學習筆記 圖片 blob 標示 關鍵字:SVD、奇異值分解、降維、基於協同過濾的推薦引擎作者:米倉山下時間:2018-11-3機器學習實戰(Machine Learning in Action,@author: Peter Harringto

【ssh】struts2action接收引數的方法

Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定義屬性,建立get和set方法;     b.接收:通過屬性接收引數,如

Go語言學習筆記10:使用 github.com/weilaihui/fdfs_client 連線 fastDFS,遇到了cannot find package "golang.org/x/的報錯

今天在嘗試使用weilaihui/fdfs_client時,一直無法通過編譯,主要的報錯有兩處: ./github.com/Sirupsen/logrus/terminal_check_notappengine.go:9:2: cannot find package "golang.org/x/

Struts2Action接收引數的方法:屬性,Model,ModelDriver

Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定義屬性,建立get和set方法;     b.接收:通過屬性接收引數,如:userName;     c.傳送:使用屬性名傳遞引數,如:u

Struts2學習筆記(四):action中訪問request,session以及applicationContext等web資源的方法

在struts2的action中有時會需要訪問request,session以及applicationContext等web資源,這裡我總結了四種可行的方法,供讀者參考。 (1)使用ActionContext <pre name="code" class="java

struts2action接收引數方法(get_set方法)

1 struts2的action接收引數可以通過set和get方法。首先將屬性新增set和get方法。然後struts2會通過反射(有set和get方法)自動對屬性進行例項化。達到java中的new一個物件的目的。 2 有兩種情況下,struts2會自動反射進行例項化。第一

Action接收引數的3種方式(屬性,域模型,模型驅動,struts2.1.8)

常用第一種跟第二種 1.Action屬性傳引數: 建議:屬性應該與引數名相同。 在一個繼承ActionSupport類中新增接收引數的屬性,並生成其get() set()方法,在請求中附帶引數和對應的值,在struts2幫我們new這個類的時候,會自動呼叫get,set方法

Struts2學習筆記struts2.5使用萬用字元配置action跳轉

寫在前面:其實在一年前,還沒有開始寫部落格的時候就已經學過struts2了,只是當時太蠢,無法理解MVC以及struts2的一些“人性化”的設定,過了一年再反過來看struts2就很明白了。只是在struts2.5裡面多了一個機制導致無法像以往一樣簡單的使

struts2action接收引數的3種方法

Struts2中Action接收引數的方法主要有以下三種: Struts2中Action接收引數的方法主要有以下三種: 1.使用Action的屬性接收引數:     a.定義:在Action類中定