strutsプログラミング異常--html:errorとhtml:message


strutsプログラミング異常プロセス:
異常情報をキャプチャする.例外情報を作成します.異常情報を伝達する.該当ページに移動
 
<html:errors/>      

  
<html:messages id="msg" message="true">
	<bean:write name="msg"/>
</html:messages>
 message="true"         message  , message false              html:error  

次のようになります.
package com.lwf.struts.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.lwf.struts.form.LogonForm;
import com.lwf.struts.util.UserManageEntity;
import com.lwf.struts.util.UserNotFoundException;

public class LogonAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		ActionMessages errors = new ActionMessages();
		ActionForward forward = new ActionForward();
		
		LogonForm logonForm = (LogonForm)form;
		String name = logonForm.getUsername();
		String pwd = logonForm.getPassword();
		
		try {
			UserManageEntity.UserManager(name);
			errors.add("logonerror1", new ActionMessage("error.login.user"," myerrmsg"));
			this.saveMessages(request, errors);
			request.getSession().setAttribute("user", logonForm);
			forward = mapping.findForward("success");
		} catch (UserNotFoundException e) {
			errors.add("logonerror2", new ActionMessage("error.login.again"," error2"));
			this.saveErrors(request, errors);
			forward = mapping.findForward("error");
		}
		
		return forward;
	}

	
}

 
 
注意プログラム:
saveMessagesとsaveErrorsの2つのメソッドの呼び出し
 
package com.lwf.struts.util;

public class UserManageEntity {

	public static void UserManager(String username) throws UserNotFoundException{
		if(username!=null && !username.equals("admin")){
			throw new UserNotFoundException();
			
		}
	}
}

 
package com.lwf.struts.util;

public class UserNotFoundException extends Exception {

	public UserNotFoundException(){}
	public UserNotFoundException(String message){
		super(message);
	}
}

 
 
strutsはまた、リソースファイルで次のプロパティを定義することを規定します.
errors.header	= <UL>
errors.prefix	= <LI>
errors.suffix	= </LI>
errors.footer	= </UL>

 
複数の異常情報が連続する場合、それぞれがLIに表示する、複数の情報がULに表示される.
各例外情報を赤いフォントで表示したい場合は、次のようにします.
errors.header	= <UL>
errors.prefix	= <LI><font color="red">
errors.suffix	= </LI></font>
errors.footer	= </UL>