「Struts」の編集履歴(バックアップ)一覧はこちら

Struts」(2013/02/28 (木) 10:46:11) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*◆&this_page() #contents() ---- **ActionMessageはpropertiesファイルに書いてやろう propertiesファイルをstruts-config.xmlで読み込んでいる状態で new ActionMessage("エラーメッセージの文字列"); を書いても一向に文字が表示されない。 propertiesの中のコード"エラーメッセージの文字列"を 探しに行って、ないので表示されないらしい。 propertiesファイルがある場合は new ActionMessage("error.code") resources.properties error.code=エラーメッセージの文字列 と書かないと、表示されないので注意! **前準備 これらのファイルをtomcatの中からコピってくる WEB-INF/lib/***.jar WEB-INF/tld/struts-bean.tld WEB-INF/tld/struts-html.tld WEB-INF/tld/struts-logic.tld WEB-INF/tld/struts-nested.tld WEB-INF/tld/struts-tiles.tld -web.xml TLDのパスの設定をする。 <taglib-uri>struts-bean</taglib> <taglib-location>tld/struts-bean.tld</taglib> ここで設定したuriをhtmlの上でimportする。 <%@ taglib uri="struts-bean" prefix="bean" %> **一連のアクション -用意するファイル src/○○○Action src/○○○Form jsp/✕✕✕.jsp(遷移前の画面) jsp/□□□.jsp(遷移後の画面) -✕✕✕.jsp <html:form action=△△△ ,,, -struts-config.xml <!-- フォームの設定 --> <form-bean name=○○○Form type=パッケージ.○○○Form /> <!-- アクションの設定 --> <action path=△△△ type=パッケージ.○○○Action name=○○○Form > <forward name=キーワード path=□□□.jsp >※次の画面 **PreparedStatementの仕様 ○ pre = createPrepared("SELECT * FROM ?") pre.setString(1, "TBL_MEMBER") ✕ pre = createPrepared("SELECT * ?") pre.setString(1, "FROM TBL_MEMBER") ※FROM句からとかWHERE句から設定などはできないようです。 ** JSPのエンコード指定しないとよく文字化けする JSPファイル作成して他の人が更新する度に エンコードがおかしくなると思ったら、 <%@page pageEncoding="UTF-8"%> を指定しないと、いくらデフォルトがUTF-8でも JSP作成時に毎回UTF-8にするように設定しても 勝手にShift_JISになったりするらしい。 ちょっとimportするだけでもエンコードはちゃんと書こう。
*◆&this_page() #contents() ---- **ActionMessageはpropertiesファイルに書いてやろう propertiesファイルをstruts-config.xmlで読み込んでいる状態で new ActionMessage("エラーメッセージの文字列"); を書いても一向に文字が表示されない。 propertiesの中のコード"エラーメッセージの文字列"を 探しに行って、ないので表示されないらしい。 propertiesファイルがある場合は new ActionMessage("error.code") resources.properties error.code=エラーメッセージの文字列 と書かないと、表示されないので注意! **前準備 これらのファイルをtomcatの中からコピってくる WEB-INF/lib/***.jar WEB-INF/tld/struts-bean.tld WEB-INF/tld/struts-html.tld WEB-INF/tld/struts-logic.tld WEB-INF/tld/struts-nested.tld WEB-INF/tld/struts-tiles.tld -web.xml TLDのパスの設定をする。 <taglib-uri>struts-bean</taglib> <taglib-location>tld/struts-bean.tld</taglib> ここで設定したuriをhtmlの上でimportする。 <%@ taglib uri="struts-bean" prefix="bean" %> **一連のアクション -用意するファイル src/○○○Action src/○○○Form jsp/✕✕✕.jsp(遷移前の画面) jsp/□□□.jsp(遷移後の画面) -✕✕✕.jsp <html:form action=△△△ ,,, -struts-config.xml <!-- フォームの設定 --> <form-bean name=○○○Form type=パッケージ.○○○Form /> <!-- アクションの設定 --> <action path=△△△ type=パッケージ.○○○Action name=○○○Form > <forward name=キーワード path=□□□.jsp >※次の画面 **PreparedStatementの仕様 ○ pre = createPrepared("SELECT * FROM ?") pre.setString(1, "TBL_MEMBER") ✕ pre = createPrepared("SELECT * ?") pre.setString(1, "FROM TBL_MEMBER") ※FROM句からとかWHERE句から設定などはできないようです。 ** JSPのエンコード指定しないとよく文字化けする JSPファイル作成して他の人が更新する度に エンコードがおかしくなると思ったら、 <%@page pageEncoding="UTF-8"%> を指定しないと、いくらデフォルトがUTF-8でも JSP作成時に毎回UTF-8にするように設定しても 勝手にShift_JISになったりするらしい。 ちょっとimportするだけでもエンコードはちゃんと書こう。 ** JSPからMapやListをFormに送信 FormのInstanceTypeの設定を削除すると、 jspからsubmitされた値のみFormに格納されるようになるが、 そういう場合のMapやListの受け渡し方法をメモ。 ◆Map jsp <c:forEach var="data" items="${dataMap}" varStatus="status"> <html:hidden property="dataMap(${${data.key}})" value="${data.value}" /> </c:forEach> Form Map<String, String> dataMap = new HashMap<String, String>(); Form→jspならkeyにInteger指定したり、オブジェクト入れたりできるが jsp→Formだと、 JavaでdataMap.push(0, "");として jspでproperty="dataMap(0)" value=""となってる値を送信すると、 Integer型のキー0とjspから送信されたString型のキー0が別のキーと認識され、 同じキーのデータが2件あるように見えてしまう。 なので、キーはStringじゃないとうまく行かない。 javascript なんかうまく行かない。 var map = new Array(); map["あ"] = "お"; $.ajax({... data: "dataMap": map ...}); としてもエラーが出てしまう。 仕方がないので、 $.ajax({... data: "dataMap(あ)": map["あ"] ...}); とした。これだとMap使ってる意味が、、、 ◆List jsp <c:forEach var="data" items="${dataList}" varStatus="status"> <html:hidden property="dataList(${status.index})" value="${data}" /> </c:forEach> Form List<String> dataList = new ArrayList<String>(); javascript var list = new Array("あ", "い", "う"); $.ajax({... data: dataList: list ...}); で送信できる。

表示オプション

横に並べて表示:
変化行の前後のみ表示: