- 2008年11月23日 12:44
- しらべる
前回の記事は検証メソッドをつかったものでしたが、今回はアノテーションを使ったバリデータによる検証でのやり方をやってみました。
@Execute(validator = false)
public String jsonError() throws IOException{
HttpServletRequest request = RequestUtil.getRequest();
HttpSession session = request.getSession();
Object msgRequest = request.getAttribute(Globals.ERROR_KEY);
Object msgSession = session.getAttribute(Globals.ERROR_KEY);
ResourceBundle resource = ResourceBundle.getBundle("application");
Map<String, String> result = new HashMap<String, String>();
if(msgRequest != null){
for (Iterator iter = ((ActionMessages)msgRequest).get(); iter.hasNext(); ) {
ActionMessage msg = (ActionMessage) iter.next();
String text = (String)resource.getString(msg.getKey());
result.put("msg", MessageFormat.format(text, msg.getValues()));
}
}
else{
for (Iterator iter = ((ActionMessages)msgSession).get(); iter.hasNext(); ) {
ActionMessage msg = (ActionMessage) iter.next();
String text = (String)resource.getString(msg.getKey());
result.put("msg", MessageFormat.format(text, msg.getValues()));
}
}
this.response.setContentType("text/javascript");
this.response.setCharacterEncoding("UTF-8");
this.response.getWriter().write(JSON.encode(result));
return null;
}
これだと、プロパティファイルのプレースホルダの置換も大丈夫っぽいです。
