建一个web工程, 名为test_struts2,然后
struts2配置文件中:
<action name="aa" class="com.view.Test" method="test">
其中 name="aa",在WebRoot下创建一个包,名字为aa,然后运行http://127.0.0.1:8080/test_struts2/aa
就会出现错误提示
Stacktraces
There is no Action mapped for namespace / and action name aa/. - [unknown location] 什么原因呢
struts2配置文件中:
<action name="aa" class="com.view.Test" method="test">
其中 name="aa",在WebRoot下创建一个包,名字为aa,然后运行http://127.0.0.1:8080/test_struts2/aa
就会出现错误提示
Stacktraces
There is no Action mapped for namespace / and action name aa/. - [unknown location] 什么原因呢
解决方案 »
- Mysql,远程访问的问题,在线等,请前辈们指点,谢谢了
- SSH 整合错误
- 记住用户名和密码,在ie6中能正常运行,在ie8中记不住密码
- 求HttpSessionBindingListener的具体使用代码
- 如何在struts2中取得在applicationContext.xml文件中定义的数据源
- 希望寻求研究Portal的同仁
- 装一个weblogic要800M空间吗?
- ***初学者问题,引入其它包中类问题****
- 调用jai被阻塞,高手帮忙!
- 使用Java对FTPS服务器文件操作?求解
- r 北京电讯盈科是个什么样的公司,待遇如何?100分求,因目前不能用那么多分,其他的会陆续加入。
- 丰厚回报,咨询JAVA问题
改成http://127.0.0.1:8080/test_struts2/aa.action
比如把struts2的配置文件配置成:
<action name="manager" class="com.view.TestAction">
<result>/index.jsp</result>
</action>然后在WebRoot下建一个包,名字为manager,然后在manager包中创建文件delete.jsp,我想达到的效果是,当直接输入
http://127.0.0.1:8080/test_struts2/manager/delete.jsp的时候,转到index.jsp页面,
但是结果却是能直接访问delete.jsp文件。com.view.TestAction.java的代码如下:
public class TestAction extends ActionSupport{
public String execute() {
return Action.SUCCESS;
}
}
<action name="manager" class="com.view.TestAction">
<result>/index.jsp</result>
</action>
并没有起作用
我原本是用拦截器拦的,但是发现没有走配置拦截器的action。
struts2我是这样配置的,不知道错在哪,代码如下:<struts>
<constant name="struts.devMode" value="true" />
<package name="Myinterceptor" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="my" class="interceptor.MyInterceptor">
</interceptor>
<action name="manager" class="view.InterceptorAction" >
<result name="hasLogin">/manage/manage.jsp</result>
<result name="noLogin">/index.jsp</result> <!--用户没有登陆> <interceptor-ref name="my"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
<filter>
<filter-name>MyInterceptor</filter-name>
<filter-class>interceptor.MyInterceptor</filter-class>
</filter><filter-mapping>
<filter-name>MyInterceptor</filter-name>
<url-pattern>/manage/*</url-pattern>
</filter-mapping>
这样才能禁止非法访问jsp
struts.xml只能拦截action,对jsp无效
HttpServletRequest request=(HttpServletRequest)sreq;
HttpServletResponse response =(HttpServletResponse)sres;
if(request.getSession().getAttribute("userName")==null) {
response.sendRedirect("/index.jsp");
}
chain.doFilter(request,response);
}我在7楼说的不对,不是用拦截器,应该是过滤器,9楼和该楼是代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter>
<filter-name>MyInterceptor</filter-name>
<filter-class>interceptor.MyInterceptor</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>MyInterceptor</filter-name>
<url-pattern>/manager/*</url-pattern>
</filter-mapping> <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list></web-app>运行tomcat后出现如下异常:
严重: Exception starting filter MyInterceptor
java.lang.ClassCastException: interceptor.MyInterceptor还有一个疑问,如果这样配置web.xml的话,web.xml里有
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
,这样不是走不到
<filter-mapping>
<filter-name>MyInterceptor</filter-name>
<url-pattern>/manager/*</url-pattern>
</filter-mapping>
吗?
java.lang.ClassCastException 可能是interceptor.MyInterceptor类的代码有问题,代码如下public class MyInterceptor implements Filter {
public void doFilter(ServletRequest sreq, ServletResponse sres, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest)sreq;
HttpServletResponse response =(HttpServletResponse)sres;
if(request.getSession().getAttribute("userName")==null) {
response.sendRedirect("/index.jsp");
}
chain.doFilter(request,response);
}
}