靴脱いでよ

旦那の友達が遊びに来ました。 それは別にいいんですけど、ちょっと気になったことが…。
アメリカでは、家の中でも靴をはいたままで、玄関というものがありません。 や、玄関はあるんですが、靴を脱ぐエリアがないんです。うちはもちろん土足厳禁です。 ドアを開けてすぐにカーペットなんですが、ちゃんとドアの外で靴を脱いで、ドアの横には靴置きを置いています。で、その友達なんですけど、部屋に侵入してから1.5メートルくらいの位置で靴を脱いだんですよ! しかもくつはフロアに置かれたまま…。 (靴置きに置いてよ、ちゃんと)と心の中で叫んでみたものの、彼の靴に触れる勇気は私にはありません。旦那さん、どうにかしてよ。
ちなみに旦那の家族も靴は脱がない人類なので、LAのパパの家は土足です。 でも、同じところを裸足で歩いたりもします。泊りに行った夜、なんとなく足の裏が汚れるような気がして靴下を履いていたんですが、パパに"寝るのに靴下はくの? 健康によくないよ"と言われました。
さすがにカーペットが汚そうやから…とは言えませんでした。

1.2からのActionMessagesの使い方

昨日、Struts1.2からは ActionError/ErrorsがDeprecatedになると書きましたが、サンプルコードをちょこっとのせときます。
まず、アクションのクラス:


ActionMessages errors = new ActionMessages();
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.doing.something"));
saveErrors(request, errors);
//メッセージの場合は saveMessages(request, errors);
ポイント:

  • ActionErrorsがActionMessagesに、ActionErrorがActionMessageに。
  • ActionErrors.GLOBAL_ERRORもDeprecatedなので、ActionMessages.GLOBAL_MESSAGESに。

saveMessages(request, errors)の部分についてですが、

  • 1.2からはsaveMessages(javax.servlet.http.HttpSession session, ActionMessages messages)と、リクエストにかわってセッションスコープに保存することができるようになりました。セッション内のメッセージは最初に使った後にクリーンアップされます。
  • org.apache.struts.action.ActionのsaveErrors (javax.servlet.http.HttpServletRequest request, ActionErrors errors)も同じくDeprecatedになり、1.2からはsaveErrors(javax.servlet.http.HttpServletRequest request, ActionMessages errors)ができて、<html:errors>タグでもリクエストスコープからエラーメッセージを取り出すことができます。(デザイン的なコントロールがきくので、<html:errors/>よりも<html:messages>を使うように推奨しています)

JSPページでは次のようにエラー/メッセージを取り出します。


//エラーをとりだす場合
<logic:messagesPresent message="false">
<html:messages id="error" message="false">
${error} ←ELを使わないなら<bean:write name="error" />
</html:messages>
</logic:messagesPresnet>

//メッセージをとりだす場合
<logic:messagesPresent message="true">
<html:messages id="message" message="true">
${message}
</html:messages>
</logic:messagesPresnet>

ようは、messageがtrueかfalseでメッセージかエラーかを判断するのです。