- ベストアンサー
<html:form・・・>,<input type・・・>について
<html:form・・・> <input type・・・> </html:form> 上記のようにしても正常に動くのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
何を持って「正常に」と言うかね。 動くか動かないかの確認なら試してみるのが何よりも早いわ。 やってみれば? ところで質問はStrutsのことかしら? Strutsのことでの質問なら 動くわよ という回答になるけど。 Strutsが<html:~を推奨しているのは記述の統一ができるから というのが大きな理由 そして将来何か組み込むことができるから と言う理由もあるわ。 使ったほうがいろいろ助かるのは間違いないわよ。 むしろ使わないならその使わない理由を明確にしておいたほうがいいわ。 将来そのコードを見た人のためにね。
その他の回答 (2)
- ykkuy
- ベストアンサー率0% (0/2)
回答No.3
No.2で回答したものです。 新たに出ているエラーが、どの部分で出ているのかがわからないのでなんとも言えませんが、 SQLにプレースホルダを使っていて、そのプレースホルダの数と、 SQL実行時にプレースホルダにバインドしている値の個数が違っていたりしませんか?
- ykkuy
- ベストアンサー率0% (0/2)
回答No.2
他の方への補足拝見しました。 inputタグで書くならname属性を指定しないといけないのでは?
質問者
補足
ご回答ありがとうございます。 name="member_password" 上記のようにname属性を指定したのですが、「Parameter index out of bounds. 2 is not between valid values of 1 and 1」というエラーが出てきてしまいました。ネットで調べても、翻訳しても、答えが導き出せないで困っています。このエラーはどのようなことを訴えているのでしょうか?
補足
ご回答ありがとうございます。 <input type・・・>にした理由なのですが、はじめに <html:password redisplay="false"/>の中にvalue="<bean:write name="login" property= "member_password"/>"を入れようとしてエラーが解決できなかったからです。 今は以下のようにしていてもちゃんと表示されるのですが、新たな問題が浮上したため、ご質問させていただいた内容が関係しているのではないかと思い、投稿した次第です。 <html:form action="***" > <input type="password" size="50" value="<bean:write name="login" property= "member_password"/>" redisplay="false"/> ・・・ <html:submit value="更新する" /> </html:form> 私は今、上記のソースコードのJSPからActionForm,struts-config.xmlを使い、サーブレットで以下のソースコードのように,パスワードを暗号化しようとしているのですが、java.lang.nullpointerexceptionが出てきてしまいます。パスワードのオブジェクトがnullになっていると思うのですが・・・。スペルの間違いなどはないし、試しに <input type="text" property= "member_password"/>に変更してみたのですが, 結果は同じでした。かなり初心者の質問ですが、考えられる間違いがあればご教授お願いできませんでしょうか? public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception { ActionForm dForm = (ActionForm)form; String encryptionPassword = encryptionPassword(dForm.getMember_password()); //別のサーブレットでDBへ格納するためのソースです Logic logic = new Logic(getDataSource(request)); logic.upMember(encryptionPassword); return mapping.findForward("success"); } private String encryptionPassword(String member_password) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); //以下のソースでjava.lang.nullpointerexceptionが出てきます。 byte[] enc = md.digest(member_password.getBytes()); return byteArraytoHexString(enc); } private static String byteArraytoHexString(byte[] md5) { StringBuffer md5String = new StringBuffer(); for (int i = 0; i < md5.length; i++) { int n = md5[i] & 0xff; if (n < 16){ md5String.append("0"); } md5String.append(Integer.toHexString(n).toUpperCase()); } return md5String.toString(); }