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
--------------------------------------------------

Reply via email to