struts中的一些问题】的更多相关文章

Struts中的OGNL和EL表达式笔记 OGNL(Object-Graph Navigation Language),可以方便的操作对象属性的表达式语言. 1.#符号的用途 一般有三种方式: 1.1.访问非根对象属性,如类似于#session.msg表达式,由于Struts2的值栈被当做根对象, 所以访问其他非根对象时,需要加#符号. #符号相当于ActionContext.getContext( ): #session.msg表达式相当于ActionContext.getContext().…
1.struts中如何进行数据校验 在每一个Action类中,数据校验一般都写在业务方法中,比如login().register()等.struts提供了数据校验功能.每个继承自ActionSupport的Action类都可以实现一个validate()方法.struts使用拦截器org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor进行数据校验,根据拦截器的执行流程,它会在执行Action的业务方法之前…
Struts 2框架会将表单的参数以同名的方式设置给对应Action的属性中.该工作主要是由Parameters拦截器做的.而该拦截器中已经自动的实现了String到基本数据类型之间的转换工作.在struts中,默认使用拦截器 <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/> 进行请求数据自动封装,它会JSP中提交的…
1.struts中Action的开发方式 继承ActionSupport类,这种方法实现的Action可以进行数据校验: 实现Action接口: 不继承任何类,不实现任何接口: 是否继承类或实现接口,struts都会进行默认拦截器的启动,拦截器的启动和Action没有关系. 2.struts中的通配符 在对action进行配置时,会有重复的情况 <action name="login" class="com.juaner.action.UserAction"…
Struts中的 saveToken的方法     saveToken防止2次提交的问题 struts有自带的Token(令牌)的机制来解决重复提交(包括后退,刷新等).举例: 假设:假设有一个新增用户的填写表单页面,填写完后点击"提交"按钮完成数据库录入功能,要求不能重复提交(指类似刷新页面的情况).此时,需要有两个action(第一个action用来生成hidden的token值.第二个action用来校验token值,通过判断来决定是不是重复提交,不是则提交操作,否则提示错误)和至少一个页…
前面学到的用组件去上传 前台: 1.post表单提交 2.表单类型 multipart/form-data 3.intput type=file 后台: Apach提供的FileUpload组件 核心类: FileItemFactory(FileItem的工厂).SrvletFileUpload(Servlet中文上传的核心类).FileItem(封装了上传的表单文件项信息) 其过程比较复杂 struts文件上传: 文件上传拦截器帮助我们完成了问文件上传功能: <interceptor name…
1.action开发 开发的几种方式 (1).继承自ActionSupport,(如果用struts的数据效验功,能必须必须使用此功能,因为ActionSupport实现了数据效验的接口) public class UserAction extends ActionSupport{} (2).实现Action接口,该接口的内容如下.(有五个常量和一个方法) pubic interface Action{ public static final String success="success&qu…
Struts中简单的校验 “计应134(实验班) 凌豪” Struts2校验简要说明:struts2中通常情况下,类型转换要在数据校验之前进行.类型转换其实也是基本的服务器端校验,合法数据必然可以通过类 型转换,但是通过类型转换的不一定是符合项目的合法数据,还必须进行数据校验,所以类型转换是进行数据校验的前提. 比如:struts2可以将String类型的转为int类型,要求用户输入年龄(小于10岁),如果用户输入的不是一个整型而是一个字符 串,或者用户输入的年龄不符合要求,所以在转换之后必须执…
Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() throws Exception { // 1. 请求数据封装: 2. 调用Service处理业务逻辑,拿到结果数据 3. 数据保存到域中 /* * // Struts中对数据操作,方式1: 直接拿到ServletApi, 执行操作 HttpServletRequest request = Serv…
struts中action类继承了ActionSupport  默认实现了execute()方法 struts.xml配置文件中 然后可以配置如下映射: <package name ="ActionDemo" extends ="struts-default"> <action name ="HelloWorld" class ="tutorial.HelloWorld"> <result>…
<constant name="struts.action.extension" value="action,do,htm"/> 表示之后后缀名为action,do,htm的url才能进入struts中的的过滤器,进入过滤器先把后缀名删除后与配置文件中的action名字相匹配,如果相同,则访问此action 如http://localhost:8080/Demo/index.action.action会跳转至 <action name="…
前言 本文简要介绍了Apache Struts的OGNL注入缺陷,文章中介绍使用简单的应用程序复现OGNL注入.深入研究针对公共漏洞,并理解这类漏洞. 内容 安装Apache Tomcat服务器(入门) 熟悉Java应用程序在服务器上的工作方式(Web服务器基础知识) Struts应用程序示例(Struts应用程序示例) 表达语言注入(表达式语言注入) 了解OGNL注射(对象图导航语言注入) CVE-2017-5638根本原因(CVE-2017-5638根本原因) CVE-2018-11776根…
Struts中Logic逻辑标签的作用及用法 Struts中Logic逻辑标签的作用及用法 2006年10月18日 星期三 21:34 Terry原创,转载请说明作者及出处 Logic标签大部分的功能是对属性值进行判断,相等后就可以进行设置内容 数值比较标签集 <logic:equal name="questionlist" property="queLevel" value="1">简单</logic:equal> 比较…
以下是Struts中常量的一些经常使用配置,保存下来留作积累吧. <?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&quo…
Struts中Validate()和validateXxx的使用 学习struts2之后,你会发现validate在之前是没有的!它是怎么实现的呢? validate和validateXxxx都是拦截器实现的!在一个action中如果调用里面的方法则一点会去调用validate这个方法.而如果有validateXxxx这个方法.就要看你现在调用的是不是Xxxx了! 比如,现在外面调用的是login方法(在action)中.顺序是: validateLogin->validate->login…
struts中如何实现国际化,涉及哪些文件? 解答:“国际化”是指一个应用程序在运行时能够根据客户端请求所来自的国家/地区.语言的不同而显示不同的用户界面.Struts框架通过使用<bean:message>标记,以及使用java.util数据包中定义的Locale和ResourceBundle类来支持国际化.java.text.MessageFormat类定义的技术可以支持消息的格式.利用此功能,开发人员不需了解这些类的细节就可进行国际化和设置消息的格式.会涉及到资源文件,不需了解这些类的细…
方式一: 获取servletapi中的对象 方式二: struts中封装的对象 方式三: 实现接口 方式一和方式二的区别 方式一需要额外引入包或者是方式二实现不了的功能,比如:获取url 因为方式二只是吧数据封装了一个map集合 方式二和方式三的区别 方式三可以优化,若是需要创建多个对象可吧方式三封装成接口直接实现…
测试使用了一个JavaBean的User,User中的Address单独封装再形成了一个JavaBean: 为了测试静态方法和静态变量调用,写了一个Util方法: 因为测试Ognl功能过多所以直接使用的Junit进行测试! 其中只用使用四个struts中的包,创建一个普通的java项目来测试! User.java package mzy.entity; public class User { private String name; private int age; private String…
前言: 前面已经有一篇随笔介绍了Struts2的大概原理.本文就Struts2中Action与jsp页面进行数据对接时介绍几种常见方法! 值栈ValueStack 3个Action Action1 package com.gdufe.action; import com.opensymphony.xwork2.ActionSupport; /* * Action接收参数之后通过set方法赋给普通变量age,name; */ public class UserAction1 extends Act…
在struts的Action中,有三种方法可以得到request.session.servletContext域. 1.通过ServletActionContext类获取对象 HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); ServletContext servletContext = ServletActionContext.g…
注:文章中的所有图片均在附件中明白表明   首先要安装jdk1.6以及tomcat6和myeclipse 对于这些配置的安装 这里不再细细说明  其次是下载struts2  第一步:去struts21的官网 http://struts.apache.org/2.1.6/index.html  点击以下图1中的的download now.下载图二中的全出就可以. 下载后解压待用:  第二步:  打开myeclipse tomcat的集成较简单,不多讲:新建一个web project 取名为stru…
Struts ognl表达式语言几个符号 #  获取非根元素值  . 动态都建map集合 $  配置文件取值 %  提供一个ognl表达式运行环境 代码示例一:在action类的一个方法中讲一个值存入request域中 ActionContext.getContext().getContextMap().put("name", "郭庆兴"); 在前台去获取: <s:property value="#request.name" /> &…
在eclipse中新建项目StrutsDemo1[struts的配置见]struts开发<在eclipse中配置struts. 一> 详细文件夹结构例如以下 第一种配置方法 新建UserAction package fzl.user.struts.demo; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport { public String list(){ Sys…
对数据操作的3种方法(把数据保存到域中): 方式1:直接获取servletApi 核心类:ServletActionContext提供的静态方法 /** * 方式1:拿到servletApi,执行操作 */ HttpServletRequest request = ServletActionContext.getRequest(); // 拿到request对象 HttpSession session = request.getSession();// 拿到session对象 方式2:通过Act…
   今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Action中,通过传入的不同参数来觉得执行哪个操作.     DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法,所以它的子类就不用来实现这个方法了,只需要专注与实际操作的方法,        1.首先要一个DispatchAction的子类,它含有一些方…
今天测试struts时仿照书上写了一个小的表单提交代码 <html:form action="helloa.do" method="post"> <html:submit value="提交"></html:submit> </html:form> 报 Form bean not specified on mapping for action: "helloa.do"错. str…
想在一个四列的表格中插入两个按钮,希望实现下面的布局效果: 其中保存按钮为<sx:submit />控件.按照下面的代码布局: <tr><td align="center" colspan="2"><sx:submit type="submit" value="保存" executeScripts="true" align="center" /&…
JSON主要创建如下两种数据对象: 由JSON格式字符串创建,转换成JavaScript的Object对象: 由JSON格式字符串创建,转换成JavaScript的List或数组链表对象. 更多关于JSON的信息,请参考:JSON概述及其在JavaScript与Java中的应用(整理) 1. JSP页面中将对象转换为JSON字符串提交 1.1 创建JSP文件(convertObject2Json.jsp) <%@ page language="java" import="…
https://www.cnblogs.com/oldinaction/p/5167481.html 概述: Tomcat默认是 ISO编码,不支持中文.尝试过自己写 Filter,在web.xml中将自己写的FIlter放在最前面(否则不会执行Filter中的doFilter方法),甚至也在tomcat配置文件 server.xml中 的 Connector也添加了 URIEncoding="utf-8",以及在 eclipse中的properties也设置了 同样的编码方式,之后…
近期由于项目需求变更.须要本人对当中的某个业务功能进行改动.本人依照前台页面找action,依据action找代码的逻辑进行了改动(公司项目是ssh框架,struts配置全部是通过注解的方式进行.配置简单方便).当然測试人员也成功的进行了測试,发现没有不论什么问题,成功发版.奇葩事情来了.在发版环境中,改动的代码总是没用! 没办法,问题还是要解决.在确认了发版环境的确是最新代码之后,回自己座位找原因. 这次我用action名称全局搜索项目project,尼玛发现两个重名action,当然我仅仅改…