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