日期:2014-05-20  浏览次数:21220 次

struts框架中为什么地址栏输入的是http://localhost:7001/struts-app/login.do而打开了一个jsp页面??
如题,高手回答

------解决方案--------------------
。。。当然了
你应该有login action,输入url后先执行action,然后根据执行结果转到相应的jsp(或者其他,在action配置文件中)
------解决方案--------------------
是否配置了过滤器?可能会是因为配置了过滤器 拦截了**.do,跳到.jsp的.
如果没有把你相关代码贴出来看看.
------解决方案--------------------
<action path="/login"
type="org.springframework.web.struts.DelegatingActionProxy" name="userActionForm"
scope="request">
<forward name="success" path="/success.jsp" />
<forward name="error" path="/error.jsp"/>
 </action>


如上,你的URL访问/login.do的时候,在action的跳转会根据servlet返回的字符串而跳转到相应的jsp页面
------解决方案--------------------
你在web.xml配置了一个struts的servlet,通常情况下是这个样子的
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>

<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
他将.do的请求交给了org.apache.struts.action.ActionServlet处理。这个servlet根据你的
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
这个配置文件里的设置进行跳转等操作

------解决方案--------------------
是再struts-config.xml文件里面配置的,你指定了login这个action成功的页面是
xxx.jsp
------解决方案--------------------
探讨
你在web.xml配置了一个struts的servlet,通常情况下是这个样子的
<servlet>
<servlet-name>action </servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config </param-name>
<param-value>/WEB-INF/struts-config.xml </param-value>
</init-param>
<init-param>
<param-name>debug </param-name>
<param-value>2 </param-value>
</init-param>
<…