您的位置:首页 > 编程语言 > Java开发

基于mvc模式的应用框架之struts(二)

2017-12-16 20:07 501 查看

一、Action类的三种写法

1.既不继承也不实现,普通方法

代码:

public class UserAction
{
private String userName;
public void setUserName(String userName)
{
this.userName = userName;
}

public String login()
{
System.out.println("UserAction.login()" + userName);
return "login";
}

public String register()
{
System.out.println("register()" + userName);
return "register";
}
}


2.继承自ActionSupport

代码:

public class UserAction extends ActionSupport
{
public String login()
{
System.out.println("UserAction.login()");
return SUCCESS;
}
}


3.实现Action类

代码:

public class UserAction implements Action
{
public String login()
{
System.out.println("UserAction.login()");
return "success";
}

@Override
public String execute() throws Exception
{
return null;
}
}


二、Struct 2.0中的通配符

在下面的代码中,*表示传过来的参数通配符,{1}的值和
*
的值一样。

<action name="down_*" class="cn.itcast.e_fileupload.DownAction" method="{1}">


三、Struct 2.0中的常量与路径

1.Struts2中常用的常量

指定默认编码集,作用于HttpServletRequest的setCharacterEncoding方法 和freemarker 、velocity的输出

<constant name="struts.i18n.encoding" value="UTF-8"/>


自定义后缀修改常量

<constant name="struts.action.extension" value="do"/>


设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭

<constant name="struts.serve.static.browserCache" value="false"/>


当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开

<constant name="struts.configuration.xml.reload" value="true"/>
开发模式下使用,这样可以打印出更详细的错误信息

<constant name="struts.devMode" value="true" />


默认的视图主题

<constant name="struts.ui.theme" value="simple" />


与spring集成时,指定由spring负责action对象的创建

<constant name="struts.objectFactory" value="spring" />


该属性设置Struts 2是否支持动态方法调用,该属性的默认值是true。如果需要关闭动态方法调用,则可设置该属性为 false

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>


上传文件的大小限制

<constant name="struts.multipart.maxSize" value=“10701096"/>


2.Struts2中指定多个配置文件





3.Struts2的Action名称搜索机制

1、获得请求路径的URI,例如url是:

/Struts2_01/hello_a/a/b/helloWorld.action

2、首先查询namespace为/hello_a/a/b的package,

如果存在这个package,则在这个package中查询名字为helloWorld的

action,如果不存在这个package则转步骤3

3、查询namespace为/hello_a/a的package,

如果存在这个package,则在这个package中寻找名字为helloWorld的

action,如果不存在这个package,则转步骤4

4、查询namespace为/hello_a的package,

如果存在这个package,则在这个package中寻找名字为helloWorld的

action,如果仍然不存在这个package,则转步骤5

5、查询默认的namaspace的package

查询名字为helloWorld的action(默认的命名空间为空字符串“/” )

如果还是找不到,页面提示404找不到action的异常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts mvc string 框架 应用