-
Struts2是流行和成熟的基于MVC设计模式的Web应用框架查看全部
-
<!-- Struts2后缀方式一:struts.xml --> <constant name="struts.action.extension" value="action,do"></constant> <!-- Struts2后缀方式二:struts.properties --> struts.action.extension=action,do,struts2 <!-- Struts2后缀方式三:web.xml --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.action.extension</param-name> <param-value>do</param-value> </init-param> </filter> PS:在struts.xml中配置如果value="",则后缀不加才可以正常显示。 如果在struts.xml中不配置<constant name="struts.action.extension" ...,则浏览器访问action加不加后缀都可以访问查看全部
-
默认action配置,设置页面访问失败时的处理 【找不到默认action的原因和解决方法】 <default-action-ref name="index"></default-action-ref><br> <br> <action name="index"><br> <result>/error.jsp</result><br> </action> <br> <br> <action name="log_*" method="{1}" class="com.wayne.action.LoginAction"><br> <result name="login">/login.jsp</result><br> <result name="logout">/logout.jsp</result><br> </action><br> <br> 通配符会覆盖掉默认action,所以不能有【*_*】这样子的action,要改成【log_*_*】这类型的命名,否则,【*_*】里面的第一个*就包括了所有的字符,直接进入了这个action进行处理,无法进入默认的action了 '<default-acion-ref name="xxx"></default-action-ref>'通过这个来设置默认的action(当访问不存在的action 的时候会跳转到这个action,其中name就是默认action的name) 默认action: <default-action-ref name="error"></default-action-ref> <action name="error"> <result>/error.jsp</result> </action> 这两个name要相同,访问错误的action时跳转到error.jsp查看全部
-
3.动态方法调用的三个方式:(动态方法调用就是为了解决一个Action对应对个请求的处理,以免Action太多) 1)指定method属性; <action name="add" method="add" class="com.imooc.action.HelloWorldAction"> <result>/add.jsp</result> </action> 2)感叹号方式(不推荐); 先在package外面添加:<constant name="struts.enable.DynamicMethodInvocation" value="true"></constant> <action name="helloworld" class="com.imooc.action.HelloWorldAction"> <result>/reuslt.jsp</result> <result name="add">/add.jsp</result> </action> 访问add方法则地址最后目标改为:helloworld!add.action 3)通配符方式。(推荐方式) 第一个*代替{1},第二个*代替{2},result里的name是Action的返回值,action的里method是Action里的方法名,调用某个方法时最后目标就输入 {1}_{2}.action;这样可以访问多个Action里的方法 <action name="*_*" method="{2}" class="com.imooc.action.{1}Action"> <result>/result.jsp</result> <result name="add">/{2}.jsp</result> <result name="update">/{2}.jsp</result> </action> 浏览器地址: http://localhost:8080/HelloWorld/helloworld_add.action,则请求的是add.jsp 此方式可以灵活运用,可以用于class的包名、类名、以及Action的name属性中占位查看全部
-
Action搜索顺序:查看全部
-
Struts2提供了三种方式去访问Servlet API 1、使用ActionContext访问Servlet API(推荐使用) ActionContext actionContext=ActionContext.getContext(); Map<String, Object> sessionMap=actionContext.getSession(); sessionMap.put("user", user); 2、使用IOC的方式访问Servlet ApI 实现****Aware接口,如实现SessionAware接口,重写setSession方法 public void setSession(Map<String, Object> sessionMap) { this.sessionMap=arg0; } sessionMap.put("user",user); 3、耦合方式(ServletActionContext)访问Servlet API(该方法不推荐使用) ServletActionContext.getPageContext(); ServletActionContext.getRequest(); ServletActionContext.getResponse(); ServletActionContext.getServletContext();查看全部
-
1、如果有很多个Action的配置文件,则需要在struts.xml中使用<include file="fileName.xml"/>来包含其他的配置文件 2、struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防乱码问题的出现 配置文件和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> ... </struts>查看全部
-
struts查看全部
-
result 默认的name是success,即以下的两个等价查看全部
-
struts2的处理流程和处理结果类型 struts2的Action处理结果类型为String类型,有助于提高代码的复用性,有利于框架分离查看全部
-
【3、使用ModeDriven接收参数: 注意区别第2种方式, 第3种方式要赋值,如private User user=new User(); 第2种方式不需要赋值,直接private User user;即可。查看全部
-
action接收JSP页面传输的参数: 【1、使用action类的属性接收参数: a.在action类中定义成员变量,并添加get、set方法; b.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性和Action类中定义的成员变量一致。 【2、使用DomainModel接收参数: a.创建一个实体javaBean类,定义成员变量,并添加get、set方法; b.在action类中以之前创建的实体类(如user)作为成员变量,并添加get、set方法,此实体类不需要实例化对象; c.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性需要指定到实体类的属性(如name=user.username); 【3、使用ModeDriven接收参数: a.创建一个实体javaBean类,定义成员变量,并添加get、set方法; b.在action类中以之前创建的实体类(如User)作为成员变量,该实体类需要实例化对象; c.action类实现ModelDriven<实体类>接口,重写getModel方法,使该方法返回实体类的实例化对象; d.在JSP页面中Form表单的Action属性指向对应的action,input控件的name属性需要指定到实体类的属性(如name=username);查看全部
-
<!-- Struts2后缀方式一:struts.xml --> <constant name="struts.action.extension" value="action,do"></constant> <!-- Struts2后缀方式二:struts.properties --> struts.action.extension=action,do,struts2 <!-- Struts2后缀方式三:web.xml --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> <init-param> <param-name>struts.action.extension</param-name> <param-value>do</param-value> </init-param> </filter> PS:在struts.xml中配置如果value="",则后缀不加才可以正常显示。 如果在struts.xml中不配置<constant name="struts.action.extension" ...,则浏览器访问action加不加后缀都可以访问查看全部
-
1、如果有很多个Action的配置文件,则需要在struts.xml中使用<include file="fileName.xml"/>来包含其他的配置文件 2、struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防乱码问题的出现 配置文件和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> ... </struts>查看全部
-
Action的动态方法调用:动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多。 1、指定method属性: 此方式一个方法对应一个action标签,格式如下: <action name="addAction" method="方法名" class="com.imooc.HelloWorldAction"> <result>/add.jsp</result> </action> 3、【推荐!】通配符方式: 此方式通过action标签的name属性值的占位符“_*”,来获取参数,从而调用相应的方法 <action name="helloworld_*" method="{1}" class="com.HelloWorldAction"> <result name="add">/{1}.jsp</result> <result name="update">/{1}.jsp</result> </action> 浏览器地址: http://localhost:8080/HelloWorld/helloworld_add.action,则请求的是add.jsp 此方式可以灵活运用,可以用于class的包名、类名、以及Action的name属性中占位查看全部
举报
0/150
提交
取消