Eclipse3.5 WTP , Wicket1.4.9 を試していて、フォーム入力検証でエラーメッセージ
出力させた時、文字化けしていた。
ソースもHTMLも全て UTF-8 で書いていてなぜ文字化け?
→実は、Eclipse プロパティエディタ設定が原因だった。
Eclipse→設定→プロパティー・エディターの項目で
「全てユニコード変換しない」にチェックされていた。
→チェックをはずせばOK
------------------ テストしたHTML--------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"">http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:wicket="">http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
<head>
<title>Testpage</title>
<style type="text/css">
div.feedback{
color: #ff0000;
}
</style>
</head>
<body>
<div style="background-color:#FF9900"><h2>Form Test</h2></div>
<br/>
<div wicket:id="feedback" class="feedback"></div>
<form wicket:id="modelForm">
名前:<input type="text" wicket:id="inputField"/>
<button wicket:id="goModel" type="submit">送信</button>
</form>
<hr/>
<a href="index.html">back</a>
</body>
</html>
------ Pageクラス名と合わせて、 FormModelPage.properties ----------
modelForm.inputField = 名前
modelForm.inputField.Required = ${label} は、必須入力です!
---------------- Page など -------------------------
public class FormModelPage extends WebPage{
public FormModelPage(){
final TextField<String> inputField
= new RequiredTextField<String>("inputField",new Model<String>());
// new TextFieldinputField() なら、inputField.setRequired(true); で必須入力にする。
Button gobutton = new Button("goModel"){
@Override
public void onSubmit(){
// TODO
}
};
Form<Void> form = new Form<Void>("modelForm");
form.add(inputField);
form.add(gobutton);
add(form);
add(new FeedbackPanel("feedback"));
}
}
バリデーション結果、、、
このように、FeedbackPanel にメッセージが表示される。