[jboss-user] [JBoss Seam] - facesMessages and @Redirect question

X490812 do-not-reply at jboss.com
Mon Nov 5 19:06:55 EST 2007


here is my custom exception

  | @ApplicationException
  | @Redirect(viewId="genericErrorPage.xhtml")
  | public class FraudException extends Exception {
  | 	public FraudException(){}
  | }
  | 	
  | 

here is my genericErrorPage.xhtml

  | 
  | .
  | .
  | .
  | <body>
  | <h:messages
  | 	globalOnly="true"
  | 	styleClass="message"
  | 	id="globalMessages" />
  | </body>
  | 
  | </html>
  | 	
  | 


here is where I throw it:

  | 
  | private void doQry(String qry) throws FraudException {
  | 		Connection con = null;
  | 		Statement st = null;
  | 
  | 		try {
  | 			con = ds.getConnection();
  | 			st = con.createStatement();
  | 			ResultSet rs = st.executeQuery(qry);
  | 			caseList.clear();
  | 			while (rs.next()) {
  | 				caseList.add(new Tblcase(rs.getObject(1), rs.getObject(2), rs
  | 						.getObject(3), rs.getObject(4), rs.getObject(5), rs
  | 						.getObject(6), rs.getObject(7), rs.getObject(8), rs
  | 						.getObject(9), rs.getObject(10), rs.getObject(11), rs
  | 						.getObject(12)));
  | 			}
  | 		} catch (Exception e) {
  | 			e.printStackTrace();
  | 			log.error("ERROR: " + e.getMessage());
  | 			facesMessages.add("ERROR RENDERING DATA: " + e.getMessage());
  | 			throw new FraudException();
  | 		} finally {
  | 			try {
  | 				con.close();
  | 				st.close();
  | 			} catch (Exception e) {
  | 				e.printStackTrace();
  | 				log.error("ERROR: " + e.getMessage());
  | 				facesMessages.add("ERROR CLOSING CONNECTIONS: " + e.getMessage());
  | 				throw new FraudException();
  | 			}
  | 		}
  | 	
  | 


Why Does facesMessages get blown away before rendering in the debug page? The result is no error message displaying.

When I put a hardcoded message in the redirect, the hardcoded message displays, but the message I programmatically added to facesMessages does not display - as follows:

  | @Redirect(viewId="/genericErrorPage.xhtml", message="TESTMESSAGE")
  | 

To solve,  I tried the following:

I added this to my session bean

  | @Out(Scope = ScopeType.SESSION)
  | @In
  | facesMessage
  | 

That did not work - the errmessage still did not display


I also tried this:

  | @Redirect(viewId="/genericErrorPage.xhtml", message="#{errMessage}")
  | 
using an outject errMessage  as follows:

  | } catch (Exception e) {
  | 			e.printStackTrace();
  | 			log.error("ERROR: " + e.getMessage());
  | 			//facesMessages.add("ERROR RENDERING DATA: " + e.getMessage());
  | 			errMessage = "ERROR RENDERING DATA: " + e.getMessage();
  | 

- neither works. 




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4102021#4102021

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4102021



More information about the jboss-user mailing list