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

Reply via email to