java - Why I can not get the jsp thought its path? -
i use struts in java ee project:
in loading.jsp if use below src, 404 error:
<iframe src="${pagecontext.request.contextpath}/web-inf/page/menu/alermdevice.jsp" name="dev" id="dev" frameborder="0" width="500" scrolling="auto" height="400"> </iframe> 
but if use below src:
<iframe src="elecmenuaction_alermdevice.do" name="dev" id="dev" frameborder="0" width="500" scrolling="auto" height="400"> </iframe> i correct information.
this struts.xml:
<?xml version="1.0" encoding="utf-8"?> <!doctype struts public "-//apache software foundation//dtd struts configuration 2.3//en" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.devmode" value="true"></constant> <constant name="struts.ui.theme" value="simple"></constant> <constant name="struts.action.extension" value="do"></constant> <package name="system" namespace="/system" extends="struts-default"> <action name="electextaction_*" class="electextaction" method="{1}"> <result name="save">/system/textadd.jsp</result> </action> <action name="elecmenuaction_*" class="elecmenuaction" method="{1}"> <result name="menuhome">/web-inf/page/menu/home.jsp</result> <result name="title">/web-inf/page/menu/title.jsp</result> <result name="left">/web-inf/page/menu/left.jsp</result> <result name="change">/web-inf/page/menu/change.jsp</result> <result name="loading">/web-inf/page/menu/loading.jsp</result> <result name="logout" type="redirect">index.jsp</result> <result name="alermstation">/web-inf/page/menu/alermstation.jsp</result> <result name="alermdevice">/web-inf/page/menu/alermdevice.jsp</result> </action> </package> </struts> why use path can not access jsp? use action can yet?
the web server cannot resources , below web-inf folder. when action invoked returns response execution of result. it's used result type dispatcher used default forward request specified url (the requested jsp page).
dispatcher result
includes or forwards view (usually jsp). behind scenes struts use
requestdispatcher, target servlet/jsp receives same request/response objects original servlet/jsp. therefore, can pass data between them usingrequest.setattribute()- struts action available.there 3 possible ways result can executed:
if in scope of jsp (a
pagecontextavailable),pagecontext'spagecontext#include(string)method called.if there no
pagecontext, we're not in sort of include (there no"javax.servlet.include.servlet_path"in request attributes), callrequestdispatcher#forward(javax.servlet.servletrequest, javax.servlet.servletresponse)made.otherwise,
requestdispatcher#include(javax.servlet.servletrequest, javax.servlet.servletresponse)called.
when servlet dispatcher invoked has not such restriction , can return resource same response requested.
Comments
Post a Comment