Java学习,使用IDEA中碰见的问题(一)

2018-11-22 08:42:26来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

一、IDEA中配置Struts2.5.14.1,Jar包资源未生成到Out目录

学习到Struts2,建Demo,直接打开IDEA,创建了一个Web项目,使用了Struts2,结果配置好后一直提示 ClassNotFound "org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter"

前提:使用的Struts2 版本号为 2.5.14.1,本身web.xml配置文件中就要使用 "org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter",这个是从2.5开始就不一样了,具体可以看看jar包里面的命名空间,都没有"org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter",版本从2.5之后就简化了,少了“.ng”。

最后发现是因为Out目录中没有将Jar包输出,编译后的class文件,自然找不到对应的Jar包,所以设置一下就可以 了,Ctrl+Shift+Alt+S ,快捷键打开“Project Structure”,“Artifacts”选项,右下角应该有一个“Fix”按钮,修复一下就OK了。

 

 

二、IDEA中配置Struts2.5.14.1(2-2.5)通配符动态调用失败 错误代码404

 在Action中存在多个方法时,为了配置不那么臃肿,有了通配符动态调用方法,按照基本通配符配置原则,基本版本如下:

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 
 3 <!DOCTYPE struts PUBLIC
 4         "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
 5         "http://struts.apache.org/dtds/struts-2.5.dtd">
 6 
 7 <struts>
 8     <package name="struts2" namespace="/TestStruts" extends="struts-default">
 9         <action name="TestStruts_*" class="com.jsonyang.struts2.TestStrutsAction" method="{1}">
10             <result name="success">/index2.jsp</result>
11         </action>
12     </package>
13 </struts>

直接访问地址,会出现404,这是因为2.3版本之后,加强了安全配置,避免不想被调用的方法也暴露在外部,所以需要指定一个调用范围

方式一  

为每个<action>配置<allowed-methods/>,注意顺序,应该放在result标签元素之后

 1 <allowed-methods>SayHello,SayHai</allowed-methods> 

方式二

<package>下添加全局方法范围<global-allowed-methods/>

 1 <global-allowed-methods>SayHello,SayHai</global-allowed-methods> 

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:【转】七牛云加速域名配置

下一篇:6.并发编程--volatile