struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Александр Высоков <nod...@gmail.com>
Subject Re: strange behavior of s:a tag with s:include tag inside
Date Fri, 01 Jul 2011 20:39:52 GMT
So you try to tell me that in include's value must be only *.action? I think
it is not.
Documentation says that in include's value attribute may be JSP (
http://struts.apache.org/2.2.3/docs/include.html)
And in examples almost everywhere is jsp-page in include... Strange...

But I've tried your version.
I've change test.jsp to:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<s:set var="depId" value="1" scope="page"/>
<s:a id="%{#attr.depId}"
action="javascript:some-javascript-method('%{#attr.depId}')" >
<s:include value="test2.action"/>
</s:a>

Add method to class sviborg.TestAction
public String test2() {
  return SUCCESS;
}

Add action mapping to struts.xml:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="actions" extends="struts-default">
<action name="test" method="test" class="sviborg.TestAction">
<result name="success">/test.jsp</result>
</action>
<action name="test2" method="test2" class="sviborg.TestAction">
<result name="success">/test2.jsp</result>
</action>
</package>
</struts>

and then, after clicking on <a href="test.action">....</a> I received this:
<a id="1" href="javascript:some-javascript-method('1').action<http://localhost:8080/StrutsBugTest/javascript:some-javascript-method('1').action>
"></a>

Wrong again. No data in the a's body.

I think it is completely wrong. And how it corellates with Maurizio
Cucchiara's words about direct call of jsp by a browser. Include's value is
called by a browser? It is not. Strange...

By the way. I tried follows - I changed the s:a tag in test.jsp with s:div:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <s:set
var="depId" value="1" scope="page"/> <s:div id="%{#attr.depId}"
title="javascript:some-javascript-method('%{#attr.depId}')" > <s:include
value="test2.jsp"/> </s:div>

and received CORRECT result:
<div id="1" title="javascript:some-javascript-method('1')">1</div>
Completely strange. Please tell me the difference between this cases...



1 июля 2011 г. 23:49 пользователь Dave Newton <davelnewton@gmail.com>написал:

> But the include tag is still directly referencing a JSP, no?
>
> Dave
>
> On Friday, July 1, 2011, Александр Высоков <node81@gmail.com> wrote:
> > In attached in jira test-project (StrutsBugTest.war) index.html contains
> > link:
> > <a href="test.action">click</a>
> >
> > Action mapping file contains:
> > <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts
> > Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
> > <struts>
> > <package name="actions" extends="struts-default">
> > <action name="test" method="test" class="sviborg.TestAction">
> > <result name="success">/test.jsp</result>
> > </action>
> > </package>
> > </struts>
> >
> > Result is the same - strange.
> >
> > May be we talking about different things. I think I do not understand you
> > completely.
> >
> > 1 июля 2011 г. 19:27 пользователь Maurizio Cucchiara <
> > maurizio.cucchiara@gmail.com> написал:
> >
> >> As I said before, don't call jsp directly via browser: rather you need
> to
> >> invoke a struts action that, after looked at your action mapping
> >> configuration, forward the request to your final jsp
> >>
> >> Maurizio Cucchiara
> >>
> >> Il giorno 01/lug/2011 16.30, "Александр Высоков" <node81@gmail.com>
ha
> >> scritto:
> >> > I've created test project (attached StrutsBugTest.war) in jira. In
> that
> >> > project you can click to the link in index.html and see the same
> strange
> >> > behavior.
> >> >
> >> > 1 июля 2011 г. 17:28 пользователь Dave Newton <davelnewton@gmail.com
> >> >написал:
> >> >
> >> >> Unless the JSP is processed through an action, the original comment
> in
> >> the
> >> >> jira ticket is correct.
> >> >>
> >> >> Recall that a filter can stop processing a request, which is what
> >> happens
> >> >> if
> >> >> it's not a request that hits an action.
> >> >>
> >> >> Dave
> >> >> On Jul 1, 2011 8:59 AM, "Александр Высоков" <node81@gmail.com>
> wrote:
> >> >> > Hello all.
> >> >> >
> >> >> > I have two files.
> >> >> >
> >> >> > test.jsp
> >> >> > --------
> >> >> > <%@ page language="java" contentType="text/html; charset=UTF-8"
> >> >> > pageEncoding="UTF-8"%>
> >> >> > <%@ taglib uri="/struts-tags" prefix="s" %>
> >> >> > <s:set name="depId" value="1" scope="page"/>
> >> >> > <s:a id="%{#attr.depId}"
> >> >> > href="javascript:some-javascript-method('%{#attr.depId}')">
> >> >> > <s:include value="test2.jsp"/>
> >> >> > </s:a>
> >> >> >
> >> >> > test2.jsp
> >> >> > ---------
> >> >> > <%@ page language="java" contentType="text/html; charset=UTF-8"
> >> >> > pageEncoding="UTF-8"%>
> >> >> > <%@ taglib uri="/struts-tags" prefix="s" %>
> >> >> > <s:set name="test" value="1" scope="page"/>
> >> >> > 1
> >> >> >
> >> >> > The result of call http://localhost:8080/myapp/test.jsp is:
> >> >> > <a id="1" href="javascript:some-javascript-method('')">1</a>
> >> >> >
> >> >> > as we can see, second evaluation of %{#attr.depId} is missing
(must
> be
> >> >> > javascript:some-javascript-method('1')). I cannot understand why
it
> >> >> > happens.
> >> >> > But when I remove line <s:set name="test" value="1" scope="page"/>
> >> from
> >> >> > test2.jsp file and call again I receive correct result:
> >> >> > <a id="1" href="javascript:some-javascript-method('1')">1</a>
> >> >> >
> >> >> > Is this a bug or I do not understand something in Struts2?
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > С уважением, Александр.
> >>
> >
> >
> >
> > --
> > С уважением, Александр.
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>


-- 
С уважением, Александр.

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message