Web Frameworks
Web Frameworks
Matt Raible
[email protected]
mgr.removeUser(request.getParameter("user.id"));
saveMessages(request.getSession(), messages);
return mapping.findForward("users");
}
mgr.removeUser(request.getParameter("user.id"));
saveMessages(request.getSession(), messages);
return mapping.findForward("users");
}
mgr.removeUser(request.getParameter("user.id"));
saveMessages(request.getSession(), messages);
return mapping.findForward("users");
}
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/action-servlet.xml"/>
</plug-in>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
/users.html=userController
</value>
</property>
</bean>
<action-state id="setupForm">
<action bean="userFormAction"/>
<transition on="success" to="display.nameForm"/>
</action-state>
<h2>Author Blogs</h2>
<div class="item">
<ww:iterator value="#authors.authors" status="index">
<a href="<ww:property value="blog.feedUrl"/>">
<img src="${ctxPath}/images/icons/xml.gif" alt="XML Feed"/></a>
<a href="<ww:property value="blog.url"/>"><ww:property value="name"/></a>
<br />
</ww:iterator>
</div>
getUserManager().saveUser(getUser());
<application name="tapestry">
<page name="Home" specification-path="/pages/home.page"/>
<page name="users" specification-path="/pages/users.page"/>
<page name="userForm" specification-path="/pages/userForm.page"/>
<library id="contrib"
specification-path="/org/apache/tapestry/contrib/Contrib.library"/>
</application>
<property name="user"/>
<inject property="userManager" object="spring:userManager"/>
</page-specification>
return "success";
}
<navigation-rule>
<from-view-id>/userForm.jsp</from-view-id>
<navigation-case>
<from-outcome>cancel</from-outcome>
<to-view-id>/userList.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/userList.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>/userForm.jsp</from-view-id>
<navigation-case>
<from-outcome>*</from-outcome>
<to-view-id>/userList.jsp</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
<h:form id="userForm">
<h:inputHidden value="#{userForm.user.id}">
<f:convertNumber/>
</h:inputHidden>
<h:panelGrid columns="3" styleClass="detail" columnClasses="label">
<h:form id="userForm">
<h:inputHidden value="#{userForm.user.id}">
<f:convertNumber/>
</h:inputHidden>
<h:panelGrid columns="3" styleClass="detail" columnClasses="label">
<h:form id="userForm">
<h:inputHidden value="#{userForm.user.id}">
<f:convertNumber/>
</h:inputHidden>
<h:panelGrid columns="3" styleClass="detail" columnClasses="label">
<filter-mapping>
<filter-name>sitemesh</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<decorator-mappers>
<mapper class="com.opensymphony.module.sitemesh.mapper.ConfigDecoratorMapper">
<param name="config" value="${decorators-file}"/>
</mapper>
</decorator-mappers>
</sitemesh>
<decorators defaultdir="/decorators">
<excludes>
<pattern>/demos/*</pattern>
<pattern>/resources/*</pattern>
</excludes>
<decorator name="default" page="default.jsp">
<pattern>/*</pattern>
</decorator>
</decorators>
<div id="content">
<%@ include file="/messages.jsp"%>
<decorator:body/>
</div>
</body>
<div id="content">
<%@ include file="/messages.jsp"%>
<decorator:body/>
</div>
</body>
7.50
3.75
1,000
500
0
October 15, 2004 June 9, 2005 February 13, 2006
75.0
37.5
0
October 15, 2004 June 9, 2005 February 13, 2006
320
160
Tapestry
WebWork
Struts
* Spring MVC is not listed here because they have a forum instead of a mailing list and I couldn’t
figure out a way to count the number of messages for each month.
7.5
10
0
AppFuse Usage
http://raibledesigns.com/page/rd?entry=spring_mvc_the_most_popular