formタグのidについて
テンプレートに
<form id="aaaForm">
と書くとレンダリング後は
<form id="aaaForm" name="aaaForm" method="post" enctype="application/x-www-form-urlencoded" action="/hoge/view/hoge/aaa.html">
のようになります。
テンプレートが
<form id="hoge">
だとレンダリング後は
<form enctype="application/x-www-form-urlencoded" method="get" id="hoge">
のようになります。どうやらformで終わるか否かで動きが違う模様。
さらに後者の場合にjavaのメソッドが呼ばれないからといって
<form id="hoge" method="post">
とやるとおかしな現象(?)に遭遇します。
例えばhoge.html
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <form id="hogeForm"> <a id="goFuga" href="fuga.html?aaa=123&bbb=223">Linkで画面遷移</a> </form> </body> </html>
とfuga.html
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> </head> <body> <span id="allMessages"></span> <form id="fuga" method="post"> <input type="text" id="aaa"/> <input type="text" id="bbb"/> <input type="submit" id="doCcc"/> </form> </body> </html>
およびFugaPage.java
package hatena.hoge.web.hoge; public class FugaPage { private String aaa; private String bbb; public String getAaa() { return aaa; } public void setAaa(String aaa) { this.aaa = aaa; } public String getBbb() { return bbb; } public void setBbb(String bbb) { this.bbb = bbb; } public Class doCcc() { return null; } public Class initialize() { return null; } public Class prerender() { return null; } }
があった場合にhoge.htmlからfuga.htmlへリンクで遷移するとfuga側のaaaは"123"、bbbは"223"になります。
その後でaaaまたはbbbを画面で編集してボタンをクリックすると編集前の値に戻ってしまいます(直接fuga.htmlを表示した場合は大丈夫)。
action="/hoge/view/hoge/fuga.html"を付け加えれば大丈夫なので、action属性を省略した場合の動きが関係ありそうだが・・・。
(httpとかhtmlとかをもう少し勉強してから出直し)