热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Struts学习第一天:struts2配置、加载顺序、数据校验

201707121、Struts2_1100_SimpleDataValiation注意点:一:加载web工程,第一个访问web.xml文

20170712
1、/Struts2_1100_SimpleDataValiation
注意点:
一:加载web工程,第一个访问web.xml文件;如果存在filter和filter-mapping,看url-parttern,为/ *;
二:然后去/Struts2_1100_SimpleDataValiation/src/struts.xml文件中查看是否存在namespace为”/”(namespace的默认为”“)的action;
存在则访问,不存在则访问web.xml文件中的welcome-file-list;
三:struts.xml文件的访问方式为:namespace+action;根据result决定访问哪一个结果,result可不写,默认为SUCCESS(“success”);
四:struts.xml文件的访问class可根据属性决定,会访问action层(C:controller);
五:该层有三种实现方式:
第一种:任意一个类,存在execute()方法
第二种:implement Action 接口,并且@override execute() 方法;
第三种:extend ActionSupport类,重写该方法; 第三种最常用。
六:在struts.xml文件中,可自定义访问的方法:,并可相应的extend ActionSupport类之后写方法;
七:最长用的访问多个方法的是:DMI模式- - >动态调用。无需配置method,直接在JSP页面:通过”!”+method()

<a href&#61;"user/userAdd?user.name&#61;123&user.age&#61;50">路径说明a> <br> 静态
<a href&#61;"user/user!add?user.name&#61;arvin&user.age&#61;25">第二个a> 动态&#xff0c;

传参数&#xff1a;?user.name&#61;arvin&user.age&#61;25即可。href后面是绝对路径&#xff1a;需进行如下配置&#xff1a;

<%String path &#61; request.getContextPath();String basePath &#61; request.getScheme()&#43;"://"&#43;request.getServerName()&#43;":"&#43;request.getServerPort()&#43;path&#43;"/";%>

并在head中添加&#xff1a;

<base href&#61;"<%&#61;basePath%>">

八&#xff1a;Action类可通过DemainModel(域模型)的方式&#xff0c;减少耦合性&#xff1a;建立模型类User

public class UserAction extends ActionSupport {private User user;public String add() {System.out.println(user.getAge());System.out.println(user.getName());if (user.getName() &#61;&#61; null || !(user.getName() &#61;&#61; "admin")) {this.addFieldError("name", "name is error");this.addFieldError("name", "name is too long");System.out.println(ERROR);return "error";}return SUCCESS;}public User getUser() {return user;}public void setUser(User user) {this.user &#61; user;}}

在进行数据校验&#xff0c;需要this.addFieldError(“name”, “name is error”) 方法&#xff1b;
九&#xff1a;在相应JSP页面&#xff0c;进行参数显示&#xff1a;首先&#xff0c;配置struts标签&#xff1a;/META-INF/struts-tags.tld文件中可看到
<%&#64;taglib uri&#61;”/struts-tags” prefix&#61;”s” %>
然后在body中&#xff1a;

<s:fielderror fieldName&#61;"name" theme&#61;"simple"/> struts固定模式
<br />
<s:property value&#61;"errors.name[0]"/> 自定以显示&#xff0c;errors的存储方式是Map&#xff0c;key是name&#xff0c;value是value&#xff0c;故errors.name是数组&#xff0c;去第0个元素
<s:debug>s:debug> 显示debug&#xff0c;debug是stack模式。

十&#xff1a;进行分析时&#xff0c;观察链接&#xff0c;然后去找。


推荐阅读
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • SpringMVC工作流程概述
    SpringMVC工作流程概述 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • web.py开发web 第八章 Formalchemy 服务端验证方法
    本文介绍了在web.py开发中使用Formalchemy进行服务端表单数据验证的方法。以User表单为例,详细说明了对各字段的验证要求,包括必填、长度限制、唯一性等。同时介绍了如何自定义验证方法来实现验证唯一性和两个密码是否相等的功能。该文提供了相关代码示例。 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文讨论了在ASP中创建RazorFunctions.cshtml文件时出现的问题,即ASP.global_asax不存在于命名空间ASP中。文章提供了解决该问题的代码示例,并详细解释了代码中涉及的关键概念,如HttpContext、Request和RouteData等。通过阅读本文,读者可以了解如何解决该问题并理解相关的ASP概念。 ... [详细]
author-avatar
奶牛还在Henry
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有