- - PR -
strutsタグでのテキストの取得
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-05 21:15
こんにちは。
jspファイルでstrutsタグを使っているのですが、値がうまく取れません。 かなり変な使い方かもしれませんが、分かる方お願いします。 ○jspファイル <bean:define id="ulist" name="H10Form" property="userList" /> <logic:iterate id="data" name="ulist" indexId="idx"> <html:text name="data" property="item" /> . . </logic:iterate> ↑このテキストの内容を次のActionで取得したいのですが、できません・・。 ○javaソース TestData data = (TestData)tform.getUserList(0); そもそもこのuserListですがList型でitemなどのdataクラスをそのまま格納しています。 表示はされるのですが、取得が出来ません。 hiddenで持つ場合も <html:hidden property="<%=\"userList[\"+String.valueOf(idx)+\"].item\"%>"/> と記入すれば遷移時のデータは持てるのですがテキストボックスで変わったデータを 取得できないで困っています。 どなたかよろしくお願いします。 | ||||
|
投稿日時: 2006-04-05 23:12
こんにちは。
一応下記で変更したテキストの内容は取得できました。 <bean:define id="user" name="data" property="user" type="java.lang.String"/> <input type="text" name="userList[0].user" value="<%=user%>"> ただ文字化けがなぜか起こってしまいます。 jspファイルはmetaタグでShift_JIS指定しているのですが、何かエンコードがかかってるんでしょうか? | ||||
|
投稿日時: 2006-04-06 09:55
おはようございます。
JSPの先頭に
はありますか? | ||||
|
投稿日時: 2006-04-06 11:43
ご回答ありがとうございます。
他のjspファイルもヘッダー部はこのように記述しています。 <%@page contentType="text/html; charset=Shift_JIS" %> <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> <html:html> <head> <title></title> <% response.setHeader("Cache-Control","no-cache"); response.setHeader("Pragma","no-cache"); response.setDateHeader("Expires",0); %> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="-1"> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <meta http-equiv="Content-Style-Type" content="text/css"> 表示は文字化けしないのですが、次Actionで値を取得をすると全て文字化けしてしまいます。 ちなみにjavaのActionクラスはこんな感じで取得してます。 //画面情報を取得する TestData data = (TestData)tform.getUserList(0); アドバイスをよろしくお願いします。 | ||||
|
投稿日時: 2006-04-06 11:59
Filterを実装してエンコーディングフィルタを作ってみてはどうでしょうか?
http://www.hellohiro.com/filter.htm などが参考になると思います。 | ||||
|
投稿日時: 2006-04-06 12:35
ご回答ありがとうございます。
おっしゃるとおりフィルタをかけてみましたが、web.xmlの設定が分かりません。 紹介いただいたURLのjavaファイルを下記common.util.EncodingFilterとしてコンパイルしました。環境はstruts1.2.9,Tomcat4.1.27です。 ○web.xmlはこのように追加しました。 <filter> <filter-name>encodingFilter</filter-name> <filter-class>common.util.EncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <servlet-name>action</servlet-name> </filter-mapping> するとこんなエラーが出てしまいました、他で探してみたら任意のフォルダだと権限が無い・・??よく分かりません・・。 2006/04/06 12:26:34 org.apache.commons.digester.Digester error 致命的: Parse Error at line 38 column 11: Element type "filter" must be declared. org.xml.sax.SAXParseException: Element type "filter" must be declared. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 申し訳ありませんがよろしくお願いします。 | ||||
|
投稿日時: 2006-04-06 15:15
みまなさんありがとうございました。
フィルタをかけることで文字化けしなくなりました! 先程のエラーですが、TomCatでデフォルトに入ってたexampleプロジェクトのweb.xmlのヘッダー部を書き換えたら読み込んでくれました。 ありがとうございました! |
1