2007/7/4, Filippo De Luca <[EMAIL PROTECTED]>:
Hello Struts users, I am new for the struts 2 and i have some problem with param setting. I develop a simple action to view user detail: UserViewAction this action have only a execute method, loading a user by userId param. So the action work fine, but the jsp page do not display anything. Follow my code: package it.filosganga.sic.business; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.Serializable; import java.util.*; import org.apache.commons.lang.builder.*; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotBlank; import org.springmodules.validation.bean.conf.loader.annotation.handler.NotNull; /** * Classe che rappresenta un utente del sistema * * @author Filippo De Luca * @version 0.2.00, 1/05/2006 */ public class User implements Serializable { /** serial */ private static final long serialVersionUID = 200L; private Long id; private Long version; @NotNull @NotBlank private String username; @NotNull @NotBlank private String password; @NotNull private boolean enabled; @NotNull private Date expire; @NotNull private Date credentialsExpire; private Set<Role> authorities = new HashSet<Role>(); private final PropertyChangeSupport pcs = new PropertyChangeSupport(this); public User() { /* Empty */ } ... } *** public class UserViewAction { /** serial */ private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(UserViewAction.class ); private UserService userService; private Long userId; private User user; /** * @return the userService */ public UserService getUserService() { return userService; } /** * @param userService * the userService to set */ public void setUserService(UserService userService) { this.userService = userService; } /** * @return the id */ public Long getUserId() { return userId; } /** * @param id * the id to set */ public void setUserId(Long id) { this.userId = id; log.debug("Setted id = " + id); } public String execute() { user = userService.findUserById(userId); log.debug("Loaded User = " + user); return "success"; } } *** <%@ page contentType="text/html; charset=UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <html> <head> <title>User - view</title> </head> <body> <s:debug/> User:<br/> Username:<s:property value="user.username" /><br/> <br/> Roles:<br/> <s:iterator value="user.authorities"> - <s:property value="name"/><br/> </s:iterator> </body> </html> *** <package name="user" extends="struts-default" namespace="/User"> <default-interceptor-ref name="defaultStack"/> <action name="list" method="execute" class=" it.filosganga.sic.web.actions.UserListAction"> <result>/User/list.jsp</result> </action> <action name="view" method="execute" class=" it.filosganga.sic.web.actions.UserViewAction"> <result>/User/view.jsp</result> <interceptor-ref name="paramsPrepareParamsStack"/> </action> Some code are omitted for easy read. Can anyone help me? in the past i develop a PreparableAction loading user in prepare method, but i need to use paramsPrepareParamsStack to run it. What is the best way? load user in execute method or in prepare method? Best regards -- Filippo De Luca [EMAIL PROTECTED] http://www.filosganga.it -------------------------------------------------- Circolo Canottieri Roma Lungotevere Flaminio, 39 - 00196 - Roma - Italia http://www.canottieriroma.com --------------------------------------------------
Hello excuse me but this code is ok. But if the UserViewAction implements ModelDriven so it implement the method: @Override public User getModel() { return getUser(); } And the jsp page become: <body> <s:debug/> User:<br/> Username:<s:property value="username" /><br/> <br/> Roles:<br/> <s:iterator value="authorities"> - <s:property value="name"/><br/> </s:iterator> </body> The jsp page don't display anything? why? if the action is a modelDriven this jsp page have to e correct! Thanks -- Filippo De Luca [EMAIL PROTECTED] http://www.filosganga.it -------------------------------------------------- Circolo Canottieri Roma Lungotevere Flaminio, 39 - 00196 - Roma - Italia http://www.canottieriroma.com --------------------------------------------------