A. Struts2 Action怎么配置WebSocket
<constant name="struts.action.excludePattern" value="/websocket*,^ws://.$"/>
在struts.xml中配置上面的信息。注意:stackoverflow说的这种并不正确。
<!--constant name="struts.action.excludePattern" value="^ws://.+$" -->
前提:你的websocket的web程序路径最好不要在websocket下,建议back,,ws之类的,否则不明不白就会被struts拦截!!!
你的Endpoint应该like this:
如果没有Spring,把configurator这里删掉就OK。
@ServerEndpoint(value ="/websocket", configurator = SpringConfigurator.class)
public class ChatServer {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm"); // 日期格式化
@OnOpen
public void open(Session session) {
// 添加初始化操作
}
/**
* 接受客户端的消息,并把消息发送给所有连接的会话
* @param message 客户端发来的消息
* @param session 客户端的会话
*/
@OnMessage
public void getMessage(String message, Session session) {
//TODO
}
@OnClose
public void close() {
// 添加关闭会话时的操作
}
@OnError
public void error(Throwable t) {
// 添加处理错误的操作
System.out.println(t.getMessage());
System.out.println(t.getCause());
t.printStackTrace();
}
B. struts 工程在哪里配置文件里面配置与数据库的连接信息呢
struts 工程主要是配置action的,一般是ssh结构,都在web.xml配置加载 spring,然后再spring整合struts和hibernate,那配置数据库就一般在hibernate的配置文件了,当然也可以在其他文件里配置,看你想怎么操作了!
C. 简述Struts2的配置文件包括哪些元素
1、package元素
package用来管理action:使用了面向对象的思想
属性:
name:用来定义包名,注意:同一个配置文件中包名是唯一的。
extends:指定所继承的包,一般情况下需要继承struts-default包
truts-default.xml中定义着struts-default这个包。
truts-default.xml是在我们的struts.xml加载之前加载。
abstract:指定包是抽象的,只能被继承,含有action的包不能是抽象的,默认值是false。
namespace:名称空间
名称空间 + 动作名称 = 访问路径
<package name="p1" extends="struts-default" namespace="/a/b"></package>
1
struts2查找动作的方法:
1:先按照用户输入的路径查找路径: /a/b/c/d/action1.action
如果没有找到再向上一层路径找:/a/b/c 找到了(不会再继续向上找)该路径则执行第二步
再向上一层路径找:/a/b 找到了(不会再继续向上找)该路径则执行第二步,找不到继续向上一级找
再向上一层路径找:/a 没找到 找到了(不会再继续向上找)该路径则执行第二步
再找/ 也没有的话去默认命名空间下找。
都没找到直接报错
2:找action: 先在当前的命名空间下找 ,如果没有找到则取默认的命名空间(没有写namespace属性的)下找 ,如果还找不到报错
一般只要我们有默认命名空间的pakege标签时,第一步是不会报错的。
D. java struts.xml配置,分析下都代表什么
你太懒了,那我来测试一下我最近学习的结果吧
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.ui.theme" value="simple" />
这个是struts 配置文件中的常量 第一个表示与Spring进行整合是由Spring 创建action的实例
第二个是指主题,struts2的标签被翻译成html文件后的显示的样式跟它有关,我觉得用途不大
<package name="exam-package" extends="struts-default" abstract="true">
这个是包 一般将按照模块将相应的action放入其中:
name属性必须唯一,名称可以任意 主要用于其他包继承
extends是指他继承的包,一般继承的都是struts-default 包,位于struts2核心jar包下自己找去
abstract为true时 这个package被定义为抽象包,是不能有action的
namespace 作为访问该包下action路径的一部分:好处是减少代码重复
这个包里面的<interceptors>是拦截器,struts2定义了各种各样的拦截器,具体功能自己研究
name属性是一个名称 class为实现类 根据name的值可以找到class
interceptor-stack是一堆拦截器组成的一个拦截器栈。也可以当拦截器使用。
interceptor-ref是指定某个action使用哪一个拦截器,可以是一个interceptor,也可以是一个interceptor-stack。
<default-interceptor-ref>指定默认拦截器引用呗
下面被注掉的是全局试图,当action中某个方法的返回值是exception是那么struts会将视图转发到
/admin/error500.jsp这个jsp
<global-exception-mappings>这个你自己想吧
就这些了楼主看着办吧,不满意就别给我分了
E. struts.xml配置文件的作用是什么
struts.xml 为Struts 2的核心配置文件。struts.xml文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
struts.xml中主要配置Struts项目的一些全局的属性,用户请求和响应Action之间的对应关系,以及配置Action中可能用到的参数,以及处理结果的返回页面。还包括各种拦截器的配置等。
F. 开发struts2一个简单应用,需要配置哪些文件
简单的strus2框架需要配置的文件只有struts.xml文件和web.xml文件。
G. Struts的配置文件的文件名叫什么
Struts应用采用两个基于XML的配置文件来配置,分别是web.xml和struts-cofig.xml文件.web.xml文件是配置所有web应用的而struts-config.xml文件是struts专用的配置文件,事实上也是可以根据需要给这个配置文件起其他名称的.