tree: 4cf0c36ed7491708b130a6f088a7bca722c60007 [path history] [tgz]
  1. src/
  2. pom.xml
  3. README.md
  4. README.txt
examples/struts/README.md

index-group=Unrevised type=page status=published title=Struts


*Help us document this example! Click the blue pencil icon in the upper right to edit this page.* ## AddUser package org.superbiz.struts; import javax.naming.Context; import javax.naming.InitialContext; import java.util.Properties; public class AddUser { private int id; private String firstName; private String lastName; private String errorMessage; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String execute() { try { UserService service = null; Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory"); Context ctx = new InitialContext(props); service = (UserService) ctx.lookup("UserServiceImplLocal"); service.add(new User(id, firstName, lastName)); } catch (Exception e) { this.errorMessage = e.getMessage(); return "failure"; } return "success"; } } ## AddUserForm package org.superbiz.struts; import com.opensymphony.xwork2.ActionSupport; public class AddUserForm extends ActionSupport { } ## FindUser package org.superbiz.struts; import javax.naming.Context; import javax.naming.InitialContext; import java.util.Properties; public class FindUser { private int id; private String errorMessage; private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String execute() { try { UserService service = null; Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory"); Context ctx = new InitialContext(props); service = (UserService) ctx.lookup("UserServiceImplLocal"); this.user = service.find(id); } catch (Exception e) { this.errorMessage = e.getMessage(); return "failure"; } return "success"; } } ## FindUserForm package org.superbiz.struts; import com.opensymphony.xwork2.ActionSupport; public class FindUserForm extends ActionSupport { } ## ListAllUsers package org.superbiz.struts; import javax.naming.Context; import javax.naming.InitialContext; import java.util.List; import java.util.Properties; public class ListAllUsers { private int id; private String errorMessage; private List<User> users; public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } public String getErrorMessage() { return errorMessage; } public void setErrorMessage(String errorMessage) { this.errorMessage = errorMessage; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String execute() { try { UserService service = null; Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.openejb.core.LocalInitialContextFactory"); Context ctx = new InitialContext(props); service = (UserService) ctx.lookup("UserServiceImplLocal"); this.users = service.findAll(); } catch (Exception e) { this.errorMessage = e.getMessage(); return "failure"; } return "success"; } } ## User package org.superbiz.struts; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import java.io.Serializable; @Entity @Table(name = "USER") public class User implements Serializable { private long id; private String firstName; private String lastName; public User(long id, String firstName, String lastName) { super(); this.id = id; this.firstName = firstName; this.lastName = lastName; } public User() { } @Id public long getId() { return id; } public void setId(long id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } } ## UserService package org.superbiz.struts; import java.util.List; public interface UserService { public void add(User user); public User find(int id); public List<User> findAll(); } ## UserServiceImpl package org.superbiz.struts; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; @Stateless public class UserServiceImpl implements UserService { @PersistenceContext(unitName = "user") private EntityManager manager; public void add(User user) { manager.persist(user); } public User find(int id) { return manager.find(User.class, id); } public List<User> findAll() { return manager.createQuery("select u from User u").getResultList(); } } ## persistence.xml </persistence-unit> --> </persistence> ## struts.xml <struts> <constant name="struts.devMode" value="true"></constant> <package name="default" namespace="/" extends="struts-default"> <action name="addUserForm" class="org.superbiz.struts.AddUserForm"> <result>/addUserForm.jsp</result> </action> <action name="addUser" class="org.superbiz.struts.AddUser"> <result name="success">/addedUser.jsp</result> <result name='failure'>/addUserForm.jsp</result> </action> <action name="findUserForm" class="org.superbiz.struts.FindUserForm"> <result>/findUserForm.jsp</result> </action> <action name="findUser" class="org.superbiz.struts.FindUser"> <result name='success'>/displayUser.jsp</result> <result name='failure'>/findUserForm.jsp</result> </action> <action name="listAllUsers" class="org.superbiz.struts.ListAllUsers"> <result>/displayUsers.jsp</result> </action> </package> </struts> ## decorators.xml <decorators defaultdir="/decorators"> <decorator name="main" page="layout.jsp"> <pattern>/*</pattern> </decorator> </decorators> ## web.xml <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Learn EJB3 and Struts2</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> <init-param> <param-name>actionPackages</param-name> <param-value>com.lq</param-value> </init-param> </filter> <filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter> <filter-name>sitemesh</filter-name> <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>sitemesh</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <jsp-config> <jsp-property-group> <description>JSP configuration of all the JSP's</description> <url-pattern>*.jsp</url-pattern> <include-prelude>/prelude.jspf</include-prelude> </jsp-property-group> </jsp-config> </web-app>