- PR -

strutsのJSP遷移画面で文字化けしています

投稿者投稿内容
社内竜王
常連さん
会議室デビュー日: 2006/12/12
投稿数: 20
投稿日時: 2006-12-25 13:39
strutsで、JSPの確認画面に入力された日本語が完了画面に遷移させてDB一覧表示して見てみると、文字化けしています。
デバックしたところ、アクションForm(Bean)でsetterにはいった時点で文字化けしています。
どなたか原因にこころあたりのある方、ご教授お願い致します。

【環境】
Windows2000(SP4)
Tomcat4.1.27
j2sdk1.4.2
Eclipse2.1.1
struts1.1

【web.xml】
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>

<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
<filter-mapping>
<url-pattern>/tera/*.do</url-pattern>
</filter-mapping>
</filter>

....

</web-app>

【確認画面】

<%@ page language="java" contentType="text/html; charset=SHIFT-JIS"
pageEncoding="SHIFT-JIS"%>
<%@ taglib uri="/tags/struts-html"prefix="html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=SHIFT-JIS">
<title>登録確認画面</title>
</head>
<body bgcolor="C2C222">
<html:form action="/Regist">
<% request.setCharacterEncoding("SHIFT-JIS"); %>
ユーザーID:<%= request.getParameter("id") %><br>
パスワード:<%= request.getParameter("pw") %><br>
名前:<%= request.getParameter("name") %><br>
<br>
これでよろしいですか?
<br>
<br>
<input type="hidden" name="id" value="<%= request.getParameter("id") %>">
<input type="hidden" name="pw" value="<%= request.getParameter("pw") %>">
<input type="hidden" name="name" value="<%= request.getParameter("name") %>">
<input type = "submit" name = "submit" value = "完了" ><br>
<br>
<html:link href="registInput.jsp">戻る</html:link>
</html:form>
</body>
</html>


現状のweb.xml(上記)では、
org.xml.sax.SAXParseException: The content of element type "filter" must match "(icon?,filter-name,display-name?,description?,filter-class,init-param*)".
のエラーが出て、画面遷移しなくなってしまいました。
まずは、このエラーを消す方法をご存知の方、ご教授宜しくお願い致します
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2006-12-25 14:01
Shift_JISではあるまいか。
T2
常連さん
会議室デビュー日: 2002/02/20
投稿数: 37
投稿日時: 2006-12-25 14:30
URLパターンの指定が違います。
*.do としてください。
/hoge/*.foo という指定方法はできません。
Smz
会議室デビュー日: 2006/11/22
投稿数: 9
投稿日時: 2006-12-25 14:39
引用:

社内竜王さんの書き込み (2006-12-25 13:39) より:
strutsで、JSPの確認画面に入力された日本語が完了画面に遷移させてDB一覧表示して見てみると、文字化けしています。


現状のweb.xml(上記)では、
org.xml.sax.SAXParseException: The content of element type "filter" must match "(icon?,filter-name,display-name?,description?,filter-class,init-param*)".
のエラーが出て、画面遷移しなくなってしまいました。




現状どういう状態なのでしょうか?
文字化けしてる段階から何か変更して画面遷移しなくなったってことですか?
T2
常連さん
会議室デビュー日: 2002/02/20
投稿数: 37
投稿日時: 2006-12-25 14:49
正しくはこうですね。
<filter-mapping>要素は、<filter>要素の外側です。
さらに、URLパターンの指定も先の私の書き込みの通りに直してください。

<filter>
<filter-name>SetCharacterEncodingFilter</filter-name>
<filter-class>SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>Shift_JIS</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>SetCharacterEncodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>

※フィルタクラスはデフォルトパッケージですか?


[ メッセージ編集済み 編集者: T2 編集日時 2006-12-25 14:51 ]
社内竜王
常連さん
会議室デビュー日: 2006/12/12
投稿数: 20
投稿日時: 2006-12-25 15:13
みなさん、いろいろご指摘ありがとうございます。
ご指摘どうり以下を修正しました。
@JSPのエンコード指定部をSHIFT-JISからShift_JISに変更。
Aweb.xmlは以下のように修正しました。
 <filter>
 <filter-name>SetCharacterEncodingFilter</filter-name>
 <filter-class>SetCharacterEncodingFilter</filter-class>
 <init-param>
 <param-name>encoding</param-name>
 <param-value>Shift_JIS</param-value>
 </init-param>
 </filter>

 <filter-mapping>
 <filter-name>SetCharacterEncodingFilter</filter-name>
 <url-pattern>*.do</url-pattern>
 </filter-mapping>
【現状】
org.xml.sax.SAXParseException: The content of element type "filter" must match "(icon?,filter-name,display-name?,description?,filter-class,init-param*)".
のエラーは消えました。しかし、メニュー画面からどのJSPにも遷移しません。
HTTP Status 404 The requested resource (/tera/RegistInput.do) is not available.
フィルターのJAVAをWEB-INFに追加してweb.xmlに記述する前は、
どのJSPにも遷移して文字化けするだけでした。
現段階でもいろいろ試行錯誤しておりますが、
もし、なにかありましたらご指導宜しくお願い致します。
T2
常連さん
会議室デビュー日: 2002/02/20
投稿数: 37
投稿日時: 2006-12-25 15:25
>フィルターのJAVAをWEB-INFに追加して

??WEB-INF直下にソースコードを置いたのですか?
社内竜王
常連さん
会議室デビュー日: 2006/12/12
投稿数: 20
投稿日時: 2006-12-25 15:32
T2さんの書き込み (2006-12-25 15:25) より:
??WEB-INF直下にソースコードを置いたのですか?

T2さん有難うございます。
tera(プロジェクト)
|-----tera/WEB-INF/src
.........|-------tera
......................|------SetCharacterEncodingFilter.java
説明不足ですみません。

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-25 15:33 ]

[ メッセージ編集済み 編集者: 社内竜王 編集日時 2006-12-25 15:34 ]

スキルアップ/キャリアアップ(JOB@IT)