You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Matthias Klein <ma...@cmklein.de> on 2006/05/10 23:11:17 UTC

[newbie]: click on commandButton does nothing. Why?

I am sure this is a super simple newbie problem, but would you mind
helping me? Thanks so much!

I wanted to start playing with MyFaces and JSF by building a tiny
application:
index.jsp simply forwards to menu.faces (which is the file menu.jsp)
In menu.jsp there is one little button leading to details.jsp
In details.jsp there are two buttons: one leading back to menu.jsp and one
leading to content.jsp
content.jsp has a button to menu.jsp.

I can deploy everything in Tomcat 5.5 and call each page individually by
using the .faces suffix instead of their real file name suffix .jsp.

But here is the thing: when I click on any of those buttons, nothing
happens. Absolutely nothing. I have added a System.outÂ… statement in the
method that is supposed to be called but that is not called either.

Do you have any idea what I did wrong?

Here some code:

-------------------------------------
Index.jsp
-------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
		<jsp:forward page="/menu.faces" />
	</body>
</html>

-------------------------------------
Menu.jsp
-------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
	<f:loadBundle
basename="ca.gc.nrc.iit.eConservatoire.frontend.bundles.MessageBundle"
var="bundle" />

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
		<head>
			<title><h:outputText value="#{bundle.menu_frame}" /></title>
		</head>

		<body>

			menu<br>
//			<h:commandButton value="Weiter" rendered="true"
action="#{MenuBackingBean.userClick}" />
	<h:commandButton value="Weiter" rendered="true" action="showDetails" />
		</body>
	</html>
</f:view>

-------------------------------------
Details.jsp
-------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
	<f:loadBundle
basename="ca.gc.nrc.iit.eConservatoire.frontend.bundles.MessageBundle"
var="bundle" />

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
		<head>
			<title><h:outputText value="#{bundle.details_frame}" /></title>
		</head>

		<body>

			<h:panelGrid columns="2">
				<h:outputText value="#{bundle.details_title}" />
				<h:outputText value="#{DetailsBackingBean.title}" />
				<h:outputText value="#{bundle.details_author}" />
				<h:outputText value="#{DetailsBackingBean.author}" />
			</h:panelGrid>

			<h:commandButton value="#{bundle.details_startbutton}." rendered="true"
action="#{DetailsBackingBean.showContent}" />
			<h:commandButton value="#{bundle.details_backbutton}" rendered="true"
action="#{DetailsBackingBean.showMenu}" />

		</body>
	</html>
</f:view>

-------------------------------------
Content.jsp
-------------------------------------
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<f:view>
	<f:loadBundle
basename="ca.gc.nrc.iit.eConservatoire.frontend.bundles.MessageBundle"
var="bundle" />

	<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
	<html>
		<head>
			<title><h:outputText value="#{bundle.content_frame}" /></title>
		</head>

		<body>

			content<br>
			<h:commandButton value="#{bundle.content_backbutton}" rendered="true"
action="#{ContentBackingBean.showMenu}" />

		</body>
	</html>
</f:view>

-------------------------------------
Faces-config.xml
-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer
Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config >

	<application>
		<locale-config>
			<default-locale>en</default-locale>
			<supported-locale>en</supported-locale>
			<supported-locale>de</supported-locale>
		</locale-config>
		<message-bundle>ca.gc.nrc.iit.eConservatoire.frontend.bundles.MessageBundle</message-bundle>
	</application>

	<managed-bean>
		<managed-bean-name>DetailsBackingBean</managed-bean-name>
		<managed-bean-class>ca.gc.nrc.iit.eConservatoire.frontend.DetailsBackingBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
		<managed-property>
			<description>Title of the Learning Object</description>
			<property-name>title</property-name>
			<property-class>java.lang.String</property-class>
			<value></value>
		</managed-property>
		<managed-property>
			<description>Author of the Learning Object</description>
			<property-name>author</property-name>
			<property-class>java.lang.String</property-class>
			<value></value>
		</managed-property>
	</managed-bean>

	<managed-bean>
		<managed-bean-name>MenuBackingBean</managed-bean-name>
		<managed-bean-class>ca.gc.nrc.iit.eConservatoire.frontend.MenuBackingBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	<managed-bean>
		<managed-bean-name>ContentBackingBean</managed-bean-name>
		<managed-bean-class>ca.gc.nrc.iit.eConservatoire.frontend.ContentBackingBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

	<navigation-rule>
		<from-view-id>/menu.jsp</from-view-id>
		<navigation-case>
			<from-outcome>showDetails</from-outcome>
			<to-view-id>/details.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>menu</from-outcome>
			<to-view-id>/menu.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
		<from-view-id>/details.jsp</from-view-id>
		<navigation-case>
			<from-outcome>showMenu</from-outcome>
			<to-view-id>/menu.jsp</to-view-id>
		</navigation-case>
		<navigation-case>
			<from-outcome>showContent</from-outcome>
			<to-view-id>/content.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	<navigation-rule>
		<from-view-id>/content.jsp</from-view-id>
		<navigation-case>
			<from-outcome>showMenu</from-outcome>
			<to-view-id>/menu.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>


-------------------------------------
Web.xml
-------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
  </listener>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
  <filter>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <filter-class>org.apache.myfaces.component.html.util.ExtensionsFilter</filter-class>
    <init-param>
      <param-name>maxFileSize</param-name>
      <param-value>20m</param-value>
    </init-param>
  </filter>
  <filter-mapping>
    <filter-name>MyFacesExtensionsFilter</filter-name>
    <url-pattern>*.faces</url-pattern>
  </filter-mapping>
</web-app>