Monday, June 3, 2024
 Popular · Latest · Hot · Upcoming
62
rated 0 times [  69] [ 7]  / answers: 1 / hits: 19100  / 11 Years ago, tue, july 16, 2013, 12:00:00
public class MyAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {

String status=success;
HttpSession session = request.getSession(true);
System.out.println(My Action---setting key value);
request.getSession().setAttribute(key1,check);

//response.sendRedirect(http://localhost:9080/FamiliarPortal/jsp/inicio.jsp);
return mapping.findForward(status);

}
}


In Struts-config.xml, the following is added:



<action path=/myAction type=iusa.ubicacel.actions.MyAction validate=false >
<forward name=success path=/jsp/inicio.jsp/>
</action>


In web.xml, the following is added:



<servlet>
<servlet-name>GetFAP</servlet-name>
<servlet-class>iusa.ubicacel.actions.map.GetFAP</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GetFAP</servlet-name>
<url-pattern>/GetFAP</url-pattern>
</servlet-mapping>


In inicio.jsp, the following is added:



<BODY onload=requestXML('<%=reqURL %>');>

<table border=0 cellspacing=0 cellpadding=0 align=center>
<tr>
<td align=center valign=middle>
<div id=mapdiv style=width: 1000px; height:700px></div>
</td>
</tr>
</table>
</BODY>


The function requestXML is as follows:



function requestXML(reqURL) 
{
alert(calling requestXML+reqURL);
var url = ../GetFAP?requestURL= + reqURL;
alert(calling requestXML+url);
xmlhttpUbi = FAPXMLHttpRequest();
xmlhttpUbi.open(POST, url, true); // async
alert(after calling);
xmlhttpUbi.onreadystatechange = obtainFAPLocation;
xmlhttpUbi.send(null);
}


The above code is not calling the GetFAP servlet when using mapping.findForward. But when I used response.sendRedirect(entire jsp path) it is calling the servlet.



Can anyone tell me what I am doing wrong here?


More From » struts-1

 Answers
25

You are using a relative URL instead of an absolute URL.



When you render the JSP directly, the ../GetFAP mapping works because you must move up a level up from the /jsp directory.1



When you render the JSP from an action, you're moving a level up from the action's path, i.e., there's no more /jsp directory in the URL to move up from.



This is among the many reasons why using relative paths can be a bad idea.






1 JSP files should live in the WEB-INF directory to avoid direct client access.


[#76965] Monday, July 15, 2013, 11 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
billtreytonb

Total Points: 211
Total Questions: 104
Total Answers: 114

Location: Sudan
Member since Tue, Aug 3, 2021
3 Years ago
;