• Java知识总结-5


    action方法
    1.编写普通的action类
    2.编写action类,实现action接口
    3.编写action类,继承actionSupport父类
    *提供volidate方法增加验证功能
    *提供获取本地文本信息的功能
    *提供getLocal()获取本地消息
    *提供方法保存和恢复action或field级的错误信息
    --需要导入Xwork中的action接口
    页面数据和action属型的三只基本对应方式
    1.属型驱动
    *基本数据类型和action属型对应,约定俗称 属型驱动
    *Javabean风格属型对应,约定俗称。直接使用域对象 bean.name
    ---都需要你get set方法
    2.模型驱动


    上传文件关键点:
    jsp: form 表单的属性 enctype="multipart/form-data"
    bean 类: 参数 XX ,XXFileName ,XXContentType
    action 类: 得到tomcat 下的文件夹路径 ServletActionContext.getServletContext().getRealPath("/upload");、
    ********************************
    配置文件:
    上传部分:
    //上传的拦截器
    <interceptor-ref name="fileUpload">
    <!--maximumSize (可选) - 这个拦截器允许的上传到action中的文件最大长度(以byte为单位).
    注意这个参数和在webwork.properties中定义的属性没有关系,默认2MB-->
    <param name="maximumSize">409600</param>
    <!--allowedTypes (可选) - 以逗号分割的contentType类型列表(例如text/html),
    这些列表是这个拦截器允许的可以传到action中的contentType.如果没有指定就是允许任何上传类型.-->
    <param name="allowedTypes">
    下载部分:
    <result name="success" type="stream">
    <!--指定文件下载类型 application/octet-stream默认值可以下载所有类型 -->
    <param name="contentType">
    application/txt;
    </param>

    <!-- 指定下载的文件名和显示方式 ,但注意中文名的乱码问题,解决办法是:进行编码处理-->
    <!--contentDisposition是文件下载的处理方式,包括内联(inline)和附件(attachment),
    默认是inline, 使用附件时这样配置:attachment;filename="文件名" 。-->
    <param name="contentDisposition">
    attachment;filename="${fileName}"
    </param>


    <!--由getDownloadFile()方法获得inputStream-->
    <param name="inputName">downloadFile</param>


    <!-- 指定下载文件的缓存大小-->
    <param name="bufferSize">2048</param>


    拦截器:

    拦截器继承:extends AbstractInterceptor
    类属性: 可以通过配置文件传入字符串


    方法:
    重写方法
    String intercept(ActionInvocation invocation)

    //取得请求相关的ActionContext实例(可以得到请求名字信息)
    ActionContext act = invocation.getInvocationContext();

    //未登录,返回重新登录
    return Action.NONE;

    //执行该拦截器的下一个拦截器,如没有,执行Action被请求的相应方法(放行)
    return invocation.invoke();


    2.5版本的配置文件特殊设置:????
    开启动态调用:
    struts2 动态调用 <constant name="struts.enable.DynamicMethodInvocation" value="true" />

    开启国际化:
    <constant name="struts.custom.i18n.resources" value="message"></constant> 其中的message就是国际化资源文件baseNmae。资源文件命名 message_zh_CN.properties xxxx_en_US.

    jsp国际化显示,可以将信息添加到<s:text></s:text> 标签中,也可以放在<s:i18n></s:i18n> 中,

    action中添加错误信息国际化 this.addActionError(this.getText("username.invalid"));

    xml 验证框架配置 <message key="username.xml.invalid"></message>

    struts2 xml 文件配置验证

    int 整数;
    double 实数;
    date 日期;
    expression 两数的关系比较;
    email Email地址;
    url 网址
    Visitor 游客
    Conversion 转换
    regex 正则表达式验证;
    required 是否存在;
    requiredstring 必须字符;
    stringlength 输入字符长度限制;
    验证类型
    验证配置文件的命名方式 actionname-(struts中的action名字)-validation.xml

    进行编码方式校验的特点:
    1) Action一定要继承自ActionSupport 。
    2) 针对某个要进行校验的请求处理方法编写一个 public void validateXxx()方法,在方法内部进行表单数据校验。
    3) 也可针对所有的请求处理方法编写public void validate()方法。
    4) 在校验方法中,可以通过addFieldError()方法来添加字段校验错误消息。
    5) 当校验失败时,Struts框架会自动跳转到name为input的Result页面。在校验失败页面中,可以使用<s:fielderror/>来显示错误消息。
    6) 简单,灵活。但重用性不高。


    fileUtil.copyfile(file,file)类可以复制文件 tomcat自带的工具类

    struts 配置文件常量
    //开发模式
    <constant value="true" name="struts.devMode"/>
    //简单主题
    <constant value="simple" name="struts.ui.theme"/>
    //action 的实例由 spring 提供
    <constant value="spring" name="struts.objectFactory"/>
    //拦截所有的 .do 结尾的访问到action
    <constant value="do" name="struts.action.extension"/>


    回应ajax数据(json 格式)
    导入jar包(自动把栈顶的数据转换为 json 格式)
    //struts2-json-plugin-2.3.8.jar

    1. //action 将结果数据放到值栈的栈顶
    ServletActionContext.getContext().getValueStack().push(result);

    2.struts.xml 配置
    <package name="jsonaction" namespace="/" extends="json-default">
    <action name="getlist" class="com.taozhi.action.ChatAction" method="getlist">
    <result type="json"><param name="root">result</param></result>
    </action>
    </package>


    ajax 接受的json数据 用jQuery 自动解析

  • 相关阅读:
    老齐python-基础7(文件操作、迭代)
    老齐python-基础6(循环 if while for)
    老齐python-基础5(运算符、语句)
    老齐python-基础4(元祖、字典、集合)
    老齐python-基础3(列表)
    老齐python-基础2(字符串)
    Jupyter notebook 的安装、入门
    pycharm 激活码
    VMware无法连接 MKS:套接字连接尝试次数太多正在放弃
    Numpy基本用法简介
  • 原文地址:https://www.cnblogs.com/flytwosky/p/6945260.html
Copyright © 2020-2023  润新知