Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / November 2006

Tip: Looking for answers? Try searching our database.

No action will be executed in Myfaces

Thread view: 
marsud - 06 Nov 2006 11:26 GMT
Hi folks

actually I started programming webapplication using MyFaces with the
tomahawk extention. The website will be displayed the way I want it
except that after any for the test "com.sun.faces.saveStateFieldMarker"
will be generated.

But the action and the actionlistener are not called as I can validate
by viewing the log of the application.
Now here is the complete code of the sample application.

Hopefully anyone has an idea
marsud

WEB.xml
=======
<web-app>
   <display-name>my-Webapplication</display-name>
   <description>Test Application</description>

   <!-- Listener, that does all the startup work (configuration,
init). -->
   <listener>

<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
   </listener>

   <!-- filtersettings for MyFacesExtentions -->
   <filter>
       <filter-name>MyFacesExtensionsFilter</filter-name>

<filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class>
       <!--
       <init-param>
           <param-name>uploadMaxFileSize</param-name>
           <param-value>5m</param-value>
           <description>Set the size limit for uploaded files.
               Format: 10 - 10 bytes
               10k - 10 KB
               10m - 10 MB
               1g - 1 GB</description>
       </init-param>
       <init-param>
           <param-name>uploadThresholdSize</param-name>
           <param-value>100k</param-value>
           <description>Set the threshold size - files
               below this limit are stored in memory, files above
               this limit are stored on disk.

               Format: 10 - 10 bytes
               10k - 10 KB
               10m - 10 MB
               1g - 1 GB
           </description>
       </init-param>
       -->
       <init-param>
           <description>
               Defines the size until the selected File is keeped in
memory. Files bigger than the specified
               value are hold in a temporary File on Disk.
           </description>
           <param-name>uploadThresholdSize</param-name>
           <param-value>100k</param-value>
       </init-param>
   </filter>

   <!-- extension mapping for adding <script/>, <link/>, and other
resource tags to JSF-pages  -->
   <filter-mapping>
       <filter-name>MyFacesExtensionsFilter</filter-name>
       <servlet-name>facesservlet</servlet-name>
   </filter-mapping>

   <filter-mapping>
       <filter-name>MyFacesExtensionsFilter</filter-name>
       <url-pattern>/my-webapp/*</url-pattern>
   </filter-mapping>

   <!-- servlets and their mappings -->
   <servlet>
       <servlet-name>facesservlet</servlet-name>
       <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
       <servlet-name>facesservlet</servlet-name>
       <url-pattern>*.jsf</url-pattern>
   </servlet-mapping>

   <!-- welcome file to enter the application -->
   <welcome-file-list>
       <welcome-file> index.jsp </welcome-file>
   </welcome-file-list>
</web-app>

FACES-CONFIG.xml
================

<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD
JavaServer Faces Config 1.1//EN"
"http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<!--
   Document   : faces-config.xml
   Created on : 6. November 2006, 09:33
   Author     : marsud
   Description:
       Purpose of the document follows.
-->

<faces-config>

   <managed-bean id="actionTestControl">
       <description>Control for testing Actions</description>
       <managed-bean-name>actionTest</managed-bean-name>

<managed-bean-class>net.sudau.test.ActionTest</managed-bean-class>
       <managed-bean-scope>session</managed-bean-scope>
   </managed-bean>

   <navigation-rule id="actiontest">
       <description>Test Actions and ActionListener</description>
       <from-view-id>test.jsp</from-view-id>
       <navigation-case>
           <from-action>add</from-action>
           <to-view-id>test.jsf</to-view-id>
       </navigation-case>
       <navigation-case>
           <from-outcome>delete</from-outcome>
           <to-view-id>test.jsf</to-view-id>
       </navigation-case>
   </navigation-rule>
</faces-config>

INDEX.jsp
=========
<jsp:forward page="test.jsf" />

TEST.jsp
========
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<html>
   <head>
       <title>Actiontests</title>
   </head>

   <body>
       <h1>Action Tests</h1>
       <f:view>

           <h:form id="addValue">
               <h:inputText value="#{actionTest.input}" title="enter
value to add." />
               <h:commandButton action="#{actionTest.add}" />

               <ul>
                   <t:dataList var="value"
value="#{actionTest.values}">
                       <f:verbatim><li></f:verbatim>
                       <h:commandLink
actionListener="#{actionTest.delete}">
                           <h:outputText value="#{value}" />
                       </h:commandLink>
                       <f:verbatim></li></f:verbatim>
                   </t:dataList>
               </ul>
           </h:form>
       </f:view>
   </body>
</html>

ActionTest.java
===============
package net.sudau.test;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.faces.event.ActionEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* <code>ActionTest</code>
* @author marsud
* @since 6. November 2006
*/
public class ActionTest {

   /** Logger for all instances of this class */
   private static final Log LOG = LogFactory.getLog
(ActionTest.class);

   private List values;
   private String input;

   /** Creates a new instance of ActionTest */
   public ActionTest () {
       LOG.debug ("Create new instance of " + getClass ().getName ());
       values = new ArrayList ();
       values.add ("Hello");
       values.add ("World");
       values.add ("1");
       values.add ("nothing");

       input = "";
   }

   public void add () {
       LOG.debug ("adding value to List. <value= " + input + ">");
       values.add (input);
       input = "";
   }

   public void delete (ActionEvent actionEvent) {
       LOG.debug ("delete value from List. <value= " +
actionEvent.getSource () + ">");
       values.remove (actionEvent.getSource ());
   }

   public String getInput () {
       LOG.debug ("actual input value is: " + input);
       return input;
   }

   public void setInput ( String newValue) {
       LOG.debug ("New Value to add is: " + input);
       input = newValue;
   }

   public List getValues () {
       Collections.sort (values);
       return values;
   }
   
} // end of class ActionTest

Gruß
Mark
hiwa - 07 Nov 2006 01:52 GMT
> Hi folks
>
[quoted text clipped - 240 lines]
> Gruß
> Mark
1. Value of action attribute, a method binding, should point a method
of no-arg and returning a String.
2. Your <navigation-case> entries are weird and wrong. See standard
documentations, or good books, on JSF app development/deployment.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.