初学Struts

MVC设计模型:
视图–数据的展现
模型–是应用程序的主体部分,代表了业务数据和业务逻辑
控制器–控制实体数据在视图的展示,调用模型处理业务请求
Struts.xml配置:
action:

<action name="动作名称" method="action实现的类的方法" class="类的路径">
<result>返回页面</result>
<result>返回页面</result>
</action>

action是Structs中的一个工作单元,是一个控制器,所以在配置action时应该配置逻辑视图和物理视图资源之间的映射,也就是上面的name,class,result三个元素。
可用通配符name=“Crud”和name=“Crud_*”来实现一个action对应多个方法。
package:

<package name="包名称" namespace="命名空间" extends="继承于某个包">
---------各种action方法----------
</pacage>

同一个命名空间中不能有同名的action方法,“/”表示根namepace,“”表示默认namespace。当所有namespace都找不到时就在默认namespace中找。
一个Struts.xml例子:

<?cml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://Struts.apache.org/dtds/Struts-2.0.dtd">
<Struts>
<constant name="Struts.custon.il8n.resources" value="messageResource">
  <pacage name="lee" extends="Struts-default">
    <action name="login" class="lee.LoginAction">
    <reuslt name="input">/login.jsp</result>
    <reuslt name="error">/error.jsp</result>
    <reuslt name="success">/welcome.jsp</result>
    </action>
  </pacage>
</Struts>

web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    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_3_0.xsd">
    <filter>
        <filter-name>Struts</filter-name>
    <filter-class>org.apache.Struts.dispatcher.ng.filter.
                StrutsPerpareAndExecuteFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>Sturts</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

拦截器:
在访问某个action方法之前或之后实施拦截,是一种AOP的实现。
interceptor stack(系统默认的是defaultStack) 是将拦截器按一定的顺序连接成一条链。

public abstract class AbstractInterceptor implements Interceptor;
public abstract class MethodFileterInterceptor extends AbstractInterceptor;

这两个抽象类以模板方法实现,前者提供了init()和destroy()的空实现,使用时只需要覆盖intercept()方法;二后者提供了includeMethods和excludeMethods两个属性用来过滤执行该过滤器的action方法。
配置拦截器:

<interceptors>
    <interceptor name="名称" class="路径">
</interceptor>
<!--拦截器栈-->
<interceptor-stack name="名称">
    <interceptor-ref name="名称" />
    <interceptor-ref name="名称" />
</interceptor-stack>
</interceptors>

输入校验:
字段校验器配置:

<field name="被校验的字段">
    <field-validator type="校验器名">
    <param name="参数名">参数值</param>
    <message>校验失败提示信息</message>
    </field-vallidator>
</field>

非字段校验器配置

<validator type="校验器名">
<param name="fieldName">需要被校验字段<param>
<param name="参数名">参数值<param>
<message>校验失败提示信息</message>
</validator>

实例:

<field name="username">
    <field-validator type="requiredstring">
    <param name="trim">true</param>
    <message>必须输入名字</message>
    </field-vallidator>
</field>

校验器名称:requiredstring 字符串长度大于0
int (接受参数fieldName,min,max)检测int范围
date(接受参数fieldName,min,max)检测日期范围
等等

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值