Hi, I have a requirement where only logged in users are allowed to put their
comment. I have implemented that form with struts2 ajax theme...anchor has
theme="ajax"

If logged in user  puts his comment then  everything  works fine
perfectly..I am able to see text message returned from action in target
div....

But when a user who is not logged in and try to put this comment..I want to
redirect user to login page..*but there what is happening here is that login
page is also streaming back and it is opening in target div..*

Any idea how to redirect user to login page..

Below is my action class method..

public String addComment() {
        try{
            UserTO userTo = null;
            Object user = this.getSession().get("user");
            if(user == null){
                return Action.LOGIN;
            }else{
                userTo = (UserTO) user;
            }
            this.getCommentTo().setUserId(userTo.getUserId());
            this.getCommentTo().setArticleId(this.getArticleId());

            this.getCommentService().addComment(this.getCommentTo());
            HttpServletResponse response = ServletActionContext.getResponse
();
            //inputStream = new StringBufferInputStream("Comment Posted
Successfully.");
            String successMsg = "Thanks for posting comment. Your comment
has been added successfully.";
            byte[] contents = successMsg.getBytes();
            response.getOutputStream().write(contents);

        }catch(Exception ex){
            LOG.error("Exception in myArticles():"+ ex);
            return Action.ERROR;
        }
        return null;
    }


This is my comment form...

               <div id='commentResponse'>
                </div>
            <s:form action="comments_addComment"  method="post" >


            <table width="583" border="0" cellspacing="2" cellpadding="2">
                <tr>
                  <td width="99" align="left"><strong>Your Comments</strong>
                              </td>
                  <td width="470" align="left">
                    <s:textarea name="commentTo.comments"  rows="5"
cols="40"></s:textarea>
                    <s:hidden name="articleId" value="${article.articleId
}"/></td>
                </tr>
                <tr>
                  <td align="left">&nbsp;</td>
                  <td width="470" align="left">

                  <s:a theme="ajax" targets="commentResponse">Add
Comment</s:a>
                  </td>
                </tr>
              </table>
            </s:form>

Below is struts.xml entry..I am using tiles and default results are tile
definitions....I also tried using redirect-action and redirect but that also
give same problem..

         <action name="comments_*" method="{1}" class="
com.rawatsoft.write4smile.webapp.action.CommentAction">
            <result name="login">login</result>

        </action>

Reply via email to