Struts¤Î¥á¥Ã¥»¡¼¥¸½èÍýµ¡¹½¤Ë¤Ä¤¤¤Æ †Struts¤Î¥á¥Ã¥»¡¼¥¸½èÍý¤ò¹Ô¤¦ActionMessage?¤Îµ¡Ç½¤Ë¤Ä¤¤¤Æ¸«¤Æ¤¤¤¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ ActionMessage?¤È¤ÏAction¥¯¥é¥¹¤ÇȯÀ¸¤·¤¿¥¨¥é¡¼¾ðÊó(¤È¤«¤Ê¤Ë¤«¥á¥Ã¥»¡¼¥¸)¤òJSP¤ËÅÁ㤹¤ë¤¿¤á¤Îµ¡¹½¤Ç¤¹¡£Action¥¯¥é¥¹¤ÇȯÀ¸¤·¤¿¥¨¥é¡¼¤òActionMessage?¤È¤¤¤¦¥¤¥ó¥¹¥¿¥ó¥¹¤Ë³ÊǼ¤¹¤ë¤³¤È¤Ç¡¢JSP¦¤Ç³ÊǼ¤·¤¿ÆâÍÆ¤ò»²¾È¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ActionMessage?¤Îµ¡Ç½¤Ï°Ê²¼¤Î¥â¥¸¥å¡¼¥ë¤«¤éÀ®¤Ã¤Æ¤¤¤Þ¤¹¡£¡£
¼ÂºÝ¤Î»È¤¤Êý¤Ç¤¹¤¬¥¢¥¯¥·¥ç¥ó¥¯¥é¥¹Æâ¤Ç ActionMessages messages = new ActionMessages(); <-message¤ò³ÊǼ¤¹¤ë¥ê¥¹¥È¤òºîÀ®
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("¥á¥Ã¥»¡¼¥¸£°",false));
¤È¤·¤ÆActionMessage?¤ò³ÊǼ¤·¤¿ActionMessages?¤òºîÀ®¤·¡¢ saveMessages(request, messages); ¤È¤·¤Æ¥ê¥¯¥¨¥¹¥È¥¹¥³¡¼¥×¤ËActionMessages?¤ò³ÊǼ¤·¤Þ¤¹¡£¼ÂºÝ¤Ë¼õ¤±ÅϤ·¤¿¤¤¥á¥Ã¥»¡¼¥¸Ê¸¸À¤ÏľÀÜ¥½¡¼¥¹¥³¡¼¥É¤Ç»ØÄꤹ¤ë¤³¤È¤â¤Ç¤¤ë*2¤·¡¢»ØÄꤷ¤¿¥¡¼Ãͤǥ꥽¡¼¥¹¥Õ¥¡¥¤¥ëÆâ¤ò¸¡º÷¤·¤ÆÊ¸¸À¤ò¼èÆÀ¤¹¤ë»ö¤â¤Ç¤¤Þ¤¹¡£ ¤µ¤Æ¾å¤Ç¥ê¥¯¥¨¥¹¥È¥¹¥³¡¼¥×¤Ë³ÊǼ¤µ¤ì¤¿ActionMessage?¤Î¥ê¥¹¥È¤Ï¡¢JSP¦¤Ç¤Ï <ul> <html:messages id="message" message="true" > <li><bean:write name="message" /></li> </html:messages> </ul> ¤È¤¹¤ë¤³¤È¤Ç²èÌ̤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¾å¤ÎÎã¤À¤ÈWEB¥Ö¥é¥¦¥¶¤Ë¤Ï <ul> <li>¥á¥Ã¥»¡¼¥¸£°</li> </ul> ¤È¤¤¤¦html¤¬ÉÁ²è¤µ¤ì¤Þ¤¹¡£ ¤ä¤Ã¤Æ¤ß¤ë †¼ÂºÝ¤Ë¥¢¥¯¥·¥ç¥ó¥¯¥é¥¹¤ÇActionMessage?¤òºîÀ®¤·¡¢¤½¤Î¾ðÊó¤òJSP¤Çɽ¼¨¤·¤Æ¤ß¤¿¤¤¤È»×¤¤¤Þ¤¹¡£ Action¥¯¥é¥¹(MessageAction?) †package nu.mine.kino.strutsexamples.actions;
public class MessageAction extends Action {
private static final Logger logger = Logger.getLogger(MessageAction.class);
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward forward = new ActionForward();
ActionMessages messages = new ActionMessages(); <-message¤ò³ÊǼ¤¹¤ë¥ê¥¹¥È¤òºîÀ®
// ¤Þ¤º¤Ï¡¢properties¤«¤é¤Ç¤Ê¤¯¡¢¥³¥³¤Ç»ØÄꤷ¤¿Ê¸»úÎó¤ò¤½¤Î¤Þ¤Þ²èÌÌɽ¼¨¤¹¤ë¥Ñ¥¿¥ó¡£
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("¥á¥Ã¥»¡¼¥¸£°",
false));// ¥ê¥½¡¼¥¹¥Õ¥é¥°¤òfalse¤Ë¤¹¤ë¡£ »ØÄꤷ¤Ê¤¤¾ì¹ç¥Ç¥Õ¥©¥ë¥È¤Ïtrue
// ¼¡¤Ïproperties¤«¤éʸ»úÎó¤ò¼èÆÀ¤¹¤ë¥Ñ¥¿¥ó¡£"msg.message1"¤È¤¤¤¦¥¡¼ÃͤÇproperties¤ò¸¡º÷¤·¡¢
// ²èÌÌɽ¼¨¡£"¥á¥Ã¥»¡¼¥¸£±"¤Ï²ÄÊÑʸ»úÎó¤Ç¡¢propertiesÆâ¤Î
// msg.message1={0} <-¥³¥³¤¬ÃÖ´¹¤µ¤ì¤ë¡£
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"msg.message1", "¥á¥Ã¥»¡¼¥¸£±"));
// ²ÄÊѥѥé¥á¥¿¤ÏÇÛÎó¤â£Ï£Ë¡£¤½¤Î¤Ð¤¢¤¤
// msg.message2= {0},{1} ¤Ê¤É¤ÈÊ£¿ô¥×¥ì¡¼¥¹¥Û¥ë¥À¤ò¤«¤±¤ë¡£
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"msg.message2", new String[] { "¥á¥Ã¥»¡¼¥¸£²¤Î£±", "¥á¥Ã¥»¡¼¥¸£²¤Î£²" }));
// ActionMessages.GLOBAL_MESSAGE¤È¤¤¤¦¤Î¤Ï¥°¥ë¡¼¥×¤ÎID¤Ë¤Ê¤Ã¤Æ¤¤¤Æ¡¢ÆÈ¼«¤ÎID¤òÅϤ¹¤³¤È¤â¤Ç¤¤ë¡£
// Message¤òɽ¼¨¤¹¤ëJSP¦¤Ç¡¢¥¿¥°¤Î»ØÄê¤Ë¥°¥ë¡¼¥×ID¤ò»ØÄꤹ¤ì¤Ð¡¢¤½¤Á¤é¤ÎID¤Î¥á¥Ã¥»¡¼¥¸¤òɽ¼¨²Äǽ¡£
// ¾ÜºÙ¤ÏJSP¦¤Ç¡£
messages.add("HogeGroup", new ActionMessage("ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸", false));
// saveMessage¤¹¤ë¤³¤È¤Ç¡¢
// request.setAttribute(Globals.MESSAGE_KEY, messages);
// ¤È¤¤¤¦½èÍý¤¬¹Ô¤ï¤ì¤ë¡£
saveMessages(request, messages);
return mapping.findForward("success");
}
}
JSP(message.jsp) †<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <%@ page language="java" contentType="text/html; charset=UTF-8" %> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@page import="org.apache.struts.action.ActionMessages"%> <html:html xhtml="true" lang="true"> <head> <title>ActionMessage·Ï¤Î¥µ¥ó¥×¥ë</title> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> <html:base /> </head> <body> <ul> <html:messages id="message" message="true" > <li><bean:write name="message" /></li> </html:messages> </ul> ¢¬¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸¤Ï½ü³°¤·¤Ê¤¤¤ß¤¿¤¤¡£ <ul> <html:messages id="message" message="true" property="HogeGroup"> <li><bean:write name="message" /></li> </html:messages> </ul> <ul> <html:messages id="message" message="true" property="<%=ActionMessages.GLOBAL_MESSAGE%>"> <li><bean:write name="message" /></li> </html:messages> </ul> ¢¬ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸¤Î½ü³°¤Ï¡¢ÌÀ¼¨Åª¤ËValue¤ò»ØÄꤹ¤ì¤Ð¤¤¤¤¡¢¡¢¡¢¡£ </body> </html:html> MessageResources?.properties †msg.message1={0}
msg.message2=½¤¾þ¤â¤Ç¤¤ë {0},{1}
# -- standard errors --
errors.header=<ul>
errors.prefix=<li>
errors.suffix=</li>
errors.footer=</ul>
¼Â¹Ô·ë²Ì †¾åJSP¤òɽ¼¨¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Êhtml¤¬É½¼¨¤µ¤ì¤Þ¤¹¡£ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <title>ActionMessage·Ï¤Î¥µ¥ó¥×¥ë</title> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> <base href="http://localhost:8080/strutsExamples/WEB-INF/jsp/message.jsp" /> </head> <body> <ul> <li>¥á¥Ã¥»¡¼¥¸£°</li> <li>¥á¥Ã¥»¡¼¥¸£±</li> <li>½¤¾þ¤â¤Ç¤¤ë ¥á¥Ã¥»¡¼¥¸£²¤Î£±,¥á¥Ã¥»¡¼¥¸£²¤Î£²</li> <li>ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸</li> </ul> ¢¬¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¢ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸¤Ï½ü³°¤·¤Ê¤¤¤ß¤¿¤¤¡£ <ul> <li>ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸</li> </ul> <ul> <li>¥á¥Ã¥»¡¼¥¸£°</li> <li>¥á¥Ã¥»¡¼¥¸£±</li> <li>½¤¾þ¤â¤Ç¤¤ë ¥á¥Ã¥»¡¼¥¸£²¤Î£±,¥á¥Ã¥»¡¼¥¸£²¤Î£²</li> </ul> ¢¬ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸¤Î½ü³°¤Ï¡¢ÌÀ¼¨Åª¤ËValue¤ò»ØÄꤹ¤ì¤Ð¤¤¤¤¡¢¡¢¡¢¡£ </body> </html> ÀâÌÀ¡£ †¤Þ¤º¤Ï³ÊǼ¤¹¤ëʸ¸À¤òľÀÜ»ØÄꤹ¤ë¾ì¹ç †messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("¥á¥Ã¥»¡¼¥¸£°", false));
// ¥ê¥½¡¼¥¹¥Õ¥é¥°¤òfalse¤Ë¤¹¤ë¡£ »ØÄꤷ¤Ê¤¤¾ì¹ç¥Ç¥Õ¥©¥ë¥È¤Ïtrue
ActionMessage?¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Çfalse¤ò»ØÄꤹ¤ë¤È¡¢¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç»ØÄꤷ¤¿String¤ò¤½¤Î¤Þ¤Þ²èÌ̤Ëɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ saveMessages(request, messages); ¤³¤ÎsaveMessages¤ò¼Â¹Ô¤¹¤ë¤È¡¢ActionMessages?¤¬¥ê¥¯¥¨¥¹¥È¤ä¥»¥Ã¥·¥ç¥ó¥¹¥³¡¼¥×¤ËGlobals.MESSAGE_KEY¤È¤¤¤¦¥¡¼ÃͤdzÊǼ¤µ¤ì¤Þ¤¹¡£¤³¤Î¥¡¼Ãͤǡ¢¼«Á°¤Ç¥¹¥¯¥ê¥×¥È¥ì¥Ã¥È¤Ê¤É¤Çhtml¤òÀ¸À®¤·¤Æ¤â¤è¤¤¤Ç¤¹¤¬¡¢°Ê²¼¤ÎStruts¤Î¥¿¥°¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤ÆÉÁ²è¤¹¤ë¤Î¤¬¤è¤ê¥¹¥Þ¡¼¥È¤Ç¤¹¡£ <ul> <html:messages id="message" message="true" > <li><bean:write name="message" /></li> </html:messages> </ul> ¤È¤¹¤ë¤ÈActionMessages?¤«¤éActionMessage?*3¤ò½çÈ֤˼è¤ê½Ð¤·¤Æ²èÌ̤ËÉÁ²è¤·¤Æ¤¤¤¤Þ¤¹¡£ <html:messages id="message" message="true" > ¤Îmessage°À¤Ï¡¢¥¨¥é¡¼¤«¥á¥Ã¥»¡¼¥¸¤«¤ò»ØÄꤹ¤ë¥Õ¥é¥°¤Ç¡¢true¤Î¾ì¹ç¤Ï saveMessages(request, messages); ¤ÇÅϤµ¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹¤Ç²èÌ̤òÉÁ²è¤·¤Þ¤¹¡£false¤Î¾ì¹ç¤Ï¸å½Ò¤Î¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸½èÍý¤Ç½Ð¤Æ¤¯¤ë saveErrors(request, messages); ¤ÇÅϤµ¤ì¤¿¥¤¥ó¥¹¥¿¥ó¥¹¤Ç²èÌ̤òÉÁ²è¤·¤Þ¤¹¡£ ActionMessages?.GLOBAL_MESSAGE¤Ë¤Ä¤¤¤Æ¤Ï¥á¥Ã¥»¡¼¥¸¤Î¥°¥ë¡¼¥Ô¥ó¥°»ØÄê¤Ê¤Î¤Ç¤¹¤¬¡¢¸å½Ò¤·¤Þ¤¹¡£ ¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó¤ò¼èÆÀ¤¹¤ë¾ì¹ç †¼¡¤Ï¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤é¥¡¼Ãͤò»ØÄꤷ¤ÆÊ¸»úÎó¤ò¼èÆÀ¤¹¤ë¥Ñ¥¿¡¼¥ó¤Ç¤¹¡£ messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("msg.message1", "¥á¥Ã¥»¡¼¥¸£±"));
ActionMessage?¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤Ç¥Õ¥é¥°¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ïtrue¤È¸«¤Ê¤µ¤ì¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤«¤éʸ»úÎó¤ò¼èÆÀ¤¹¤ë¤È¤¤¤¦»ØÄê¤Ë¤Ê¤ê¤Þ¤¹¡£Ê¸»úÎó¤ò¼èÆÀ¤¹¤ëºÝ¤Î¥¡¼ÃͤÏActionMessage?¤Î¥³¥ó¥¹¥È¥é¥¯¥¿¤ÎÂ裱°ú¿ô¤Ç»ØÄꤷ¤Þ¤¹¡£¤³¤ÎÎã¤Ïmsg.message1¤È¤¤¤¦¥¡¼Ãͤǥ꥽¡¼¥¹¥Õ¥¡¥¤¥ë¤ò¸¡º÷¤·¤Æ¤¤¤Þ¤¹¡£Â裲°ú¿ô¤Î"¥á¥Ã¥»¡¼¥¸£±"¤Ï¥×¥ì¡¼¥¹¥Û¥ë¥À¤òÃÖ´¹¤¹¤ë¤µ¤¤¤Îʸ»úÎó¤Ç¤¹¡£¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç msg.message1={0}
¤Ê¤É¤È»ØÄꤷ¤Æ¤ª¤±¤Ð¡¢{0}¤Î²Õ½ê¤¬°ú¿ô¤ÇÃÖ´¹¤µ¤ì¤Þ¤¹¡£½¾¤Ã¤Æhtml¤Ë¤Ï <li>¥á¥Ã¥»¡¼¥¸£±</li> ¤¬½ÐÎϤµ¤Þ¤¹¡£ ¥×¥ì¡¼¥¹¥Û¥ë¥À¤ÏÊ£¿ô»ØÄê¤Ç¤¤ë †¥×¥ì¡¼¥¹¥Û¥ë¥À¤ÏÇÛÎó¤ò»È¤Ã¤ÆÊ£¿ô»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£ messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("msg.message2",
new String[] { "¥á¥Ã¥»¡¼¥¸£²¤Î£±", "¥á¥Ã¥»¡¼¥¸£²¤Î£²" }));
¤ÈÊ£¿ô¤ÎÃÖ´¹Ê¸»úÎó¤ò»ØÄꤷ¡¢¥ê¥½¡¼¥¹¥Õ¥¡¥¤¥ë¤Ç¤Ï msg.message2=½¤¾þ¤â¤Ç¤¤ë {0},{1}
¤È¤·¤Æ¤ª¤¯¤È¡¢½ÐÎϤµ¤ì¤ëhtml¤Ï <li>½¤¾þ¤â¤Ç¤¤ë ¥á¥Ã¥»¡¼¥¸£²¤Î£±,¥á¥Ã¥»¡¼¥¸£²¤Î£²</li> ¤È¤Ê¤ê¤Þ¤¹¡£ ActionMessage?¤Î¥°¥ë¡¼¥Ô¥ó¥°»ØÄê †¤³¤ì¤Þ¤Ç messages.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("msg.message1", "¥á¥Ã¥»¡¼¥¸£±"));
¤Ê¤É¤È¡ÖActionMessages?.GLOBAL_MESSAGE¡×¤È¤¤¤¦Ãͤò»ØÄꤷ¤Æ¤¤¤Þ¤·¤¿¤¬¡¢¤³¤ì¤ÏActionMessage?¤ò¥°¥ë¡¼¥Ô¥ó¥°¤¹¤ëID¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ÎID¤ÏǤ°Õ¤ÎID¤òÅϤ¹¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¤ÇJSP¤Î¥¿¥°Â¦¤Ç¡¢¤½¤ÎID¤òproperty°À¤Ç»ØÄꤹ¤ë¤³¤È¤Ç¡¢»ØÄꤷ¤¿¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸¤À¤±¤òɽ¼¨¤¹¤ë¤³¤È¤¬¤Ç¤¤Þ¤¹¡£¥¢¥¯¥·¥ç¥ó¥¯¥é¥¹¤Ç messages.add("HogeGroup", new ActionMessage("ÊÌ¥°¥ë¡¼¥×¤Î¥á¥Ã¥»¡¼¥¸", false));
¤È»ØÄꤷ¤Æ¤ª¤¤¤Æmessages¥¿¥°¤Ç <ul> <html:messages id="message" message="true" property="HogeGroup"> <li><bean:write name="message" /></li> </html:messages> </ul> ¤È»ØÄꤹ¤ì¤Ð£Ï£Ë¤Ç¤¹¡£ º£²ó¤Ï¥á¥Ã¥»¡¼¥¸½èÍý¤Þ¤Ç¤Þ¤È¤á¤Þ¤·¤¿¡£¤Û¤È¤ó¤ÉƱ¤¸¤Ê¤Î¤Ç¤¹¤¬¥¨¥é¡¼½èÍý¤Ë¤Ä¤¤¤Æ¤ÏÊÌ¥Ú¡¼¥¸¤Ç¤Þ¤È¤á¤Æ¤¤¤³¤¦¤È»×¤¤¤Þ¤¹¡£ ¥µ¥ó¥×¥ë †TIPS †¥á¥Ã¥»¡¼¥¸¤¬¤¢¤ë¤È¤¤À¤±¡û¡û †¥á¥Ã¥»¡¼¥¸¤¬¤¢¤Ã¤¿¤È¤¤À¤±²¿¤«¤·¤¿¤¤¤È¤¤Ê¤É¡£ <logic:messagesPresent>¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿</logic:messagesPresent> <logic:messagesNotPresent>¥¨¥é¡¼¤Ê¤·</logic:messagesNotPresent> ´ØÏ¢¥ê¥ó¥¯ †
¸½ºß¤Î¥¢¥¯¥»¥¹:27122 |