`
香菜的故事集锦II
  • 浏览: 3113 次
文章分类
社区版块
存档分类
最新评论

文件上传下载和ognl

 
阅读更多

东西越多我越懒得写

StrutsOGNL

ognl 对象图导航语言

 

ognl表达式语言

页面取值。不过好慢啊还不如我自己写了

EL表达式语言:jsp语言的标准(默认可以使用)

OGNL表达式语言:Struts标签默认支持的表达式语言

 

算了 爸爸自己写吧

 

先写一个JSP页面

${fn:toUpperCase(hello)}

这个东西怎么实现呢

1

先写一个类

public class MyFuntion

{

public static String toUpperCase(String str)

{

return str.toUpperCase();

}

}

2

配置这个类

xml那个地方,写一个 myfun.tld 文件

表头

<?xml version="1.0" encoding="UTF-8" ?>

 

<taglib 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-jsptaglibrary_2_1.xsd"

version="2.1">

  <tlib-version>2.0</tlib-version><!-- 标签的版本 -->

    <short-name>fn</short-name><!-- 标签的前缀,和taglib中的prefix的值对应 -->

    <uri>http://qianfeng.com/javaee01</uri>

 

    

 

下来是内容

 

 

 

  <function>

    <name>toUpperCase</name>

    <function-class>com.qianfeng.web.function.MyFunction</function-class>

    <function-signature>

           java.lang.String toUpperCase(java.lang.String)

</function-signature>(为了确定这个类的名字)

    </function>

    </taglib>

 

3

好了第三步,转到JSP页面上

写一个

<%@ taglib uri=(这个就是上面那个地址) prefix=(这个上面也写了)fn%>

ok大功告成。

自己写一个玩玩吧。

好了 写好了

遇到的坑,,别配置错就ok了,挺简单的

 

下一项

据说很重要?刚讲就睡着了前面就略过自己理解吧

对了提前说个小东西

<!-- 默认把“”中的值看成ognl表达式 -->

<s:property value="helloword"/><hr>

 

<!-- 把‘’看成字符串 -->

<s:property value="'helloword'"/><hr>

 

<!-- 可以访问非静态方法 -->

<s:property value="'abcedfg'.length()"/><hr>

 

<!-- 访问静态属性(+@) -->

<s:property value="@java.lang.Integer@MAX_VALUE"/><hr>

 

<!-- 使用ognl创建List集合 -->

<s:radio list="#{'1':'男','2':'女'}"  label="性别" name="sex"></s:radio>

 

不想写了自己理解吧

 

这个ognl标签,也不难(至少我听到的)

先建立个TestAction类 往里面放东西

首先得到和当前线程绑定的actioncontext对象

ActionContext actionContext = ActionConetxt.getContext();

 

然后分几个map

Session:

Map<String , Object> sessionMap=actionContext.get(session);

这个方法太麻烦了啊我还是用下一个吧

HttpSession session = ServletActionContext.getRequest.getSession();

 

Application:

我也不知道这是个什么玩意从哪来的干嘛的就将就用吧

 

Map<String , Object> applicationmap=actionContext.get(application)

Map<String,Object> applicatMap=actionContext.getApplication();

第二个字节少就用第二个吧我自豪我骄傲我为祖国省能源

applicatMap.put(这个东西随便起名,“随便放”);

 

Request:

Map<String,Object> request=actionContext.get(request);

request.put(“”,””);

 

直接存:

actionContext.put(“”,””);

 

return success

 

一会试一试这玩意能不能存List集合什么类吧芭啦芭啦

还需要配置Struts.xml

不禁思考如果要从action进要这个东西干嘛,

我直接访问界面看不到,还非要从方法走么,,,

 

配置xml 和以前一样

 

JSP页面

例子:

<s:property value=“#session.name”/>

<s:property value=“#key”/>

 

好了现在去看能不能存List

 

okok都可以的,直接用最简单那个 ,很吊

 

我现在想实现的功能是遍历,直接把一个数据库打出来,

拦截器放在一起→ →

 

还是先声明拦截器

<interceptors>

<interceptor-ref name=“myinterceptor1”class=“”></interceptor-ref>

<interceptor-ref name=“myinterceptor1”class=“”></interceptor-ref>

</interceptors>

 

用的时候,先定义一个拦截器栈

 

<interceptors>

<interceptor-stack name=“myStack”>

<interceptor-ref name=“myinterceptor1”>

(设置不拦截的方法)

<param name=“excludeMethods”>login</param>

</interceptor-ref>

<interceptor-ref name=defaultStack></interceptor-ref>

</interceptor-stack>

<interceptors>

 

设置默认的拦截器引用

 

<default-interceptor-ref name=myStack></default-interceptor-ref>

 

大功告成,感觉有点麻烦 就多写几行代码,,

算了算了 还是用这个吧。

 

 

文件的上传与下载

 

先写上传

上传先写JSP页面(我一直不能独立写出来的一个破东西。。)

不过现在能了,因为只有两行代码(微笑脸)

不过估计还是不能。。。

 

jsp用的还是Struts标签

 

<s:form action=upload.action enctype=multipart/form-data>

(敲黑板这个enctype里的话把我一顿坑,要记下来

enctype=multipart/form-dataenctype=multipart/form-data

enctype=multipart/form-dataenctype=multipart/form-data

enctype=multipart/form-dataenctype=multipart/form-data>

就先写这么多吧

<s:textfield name=username label =用户名></s:textfield>

<s:file name=photo label=照片></s:file>

<s:submit value=提交></s:submit>

 

然后开始写action里的方法

public class UploadAction extends ActionSupport

 

敲黑板:有四个属性

private String username;

private File photo;

 

private String photoFileName;

private String photoContextType;

 

public String upload()

{

String path =SevlectActionContext.getServletContext().getRealPath

后面跟个文件夹名~一般是(/WEB-INF/upload”);

File dir = new File(path);

if(!dir.exists())

{

dir.mkdirs();

}

photo.renameTo(new File(dir,photoFileName));

return success;

}

好了 完成了 很少吧 不用写什么痛苦的流输入~

写四个属性

第一个照片名字(输入的)第二个照片名(输入的)

第三个存储文件文件名(照片名+FileName)

第四个(照片名+ContextType)

都有getset方法

 

然后获得一个路径

String path  很简单的 ServletActionContext.getServletContext.getRealp

然后创建文件了

File dir = new File(path)

如果dir 没有 就创建一个

然后

photo.renameTo(new File(dir,photoFileName));

 

 

接着我们来xml文件里的东西

<package name="p1" extends="struts-default">

<action name="upload" class="com.qianfeng.web.action.UploadAction"  method="upload">

 

<!-- 设置上传文件的扩展名类型 -->

<!-- <interceptor-ref name="defaultStack">

<param name="fileUpload.allowedExtensions">jpg</param>

</interceptor-ref> -->

 

<!-- 设置上传文件的mime类型 -->

<interceptor-ref name="defaultStack">

<param name="fileUpload.allowedTypes">image/jpeg,image/gif,image/</param>

</interceptor-ref>

 

<result name="success">/success.jsp</result>

<result name="input">/upload.jsp</result>

</action>

 

也特别简单我就不写了,不过一个有意思的是这个

 

<constant name=struts.multipart.maxSize value=5222222>

</constant>

 

ok差不多了 我先写一个看看

 

还没写明白一个迷一样的bug

不过不管了

 

download

 

public class DownLoadAction extends ActionSupport

{

private InputStream inputstream;

 

public String download() throws FileNotFoundException

{

//设置被下载文件的路径

String path=ServletActionContext.getServletContext.getRealPath

//创建读取被下载文件的字节读取流

inputstream = new FileInputStream(path);

 

return success

}

结束了,,真简单啊。。。

记得写getset方法

 

struts.xml

<result type=stream>

<param name=inputName>inputstream</param>

<param name=contectType>application/octet-stream</param

<param name=contenDisposition>attachment;filename=aa.jp

</result>

 

 

 

 

okok迷迷糊糊完成了,现在完成一个另一个东西

#Invalid field value for field "birthday".

invalid.fieldvalue.birthday=\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u65E5\u671F\u683C\u5F0Fyyyy-MM-dd

这个是回显设置字体那个

挺好玩

在实体类下

键一个 User.properties文件

里面就写的这个

 

分享到:
评论

相关推荐

    Struts2_OGNL

    在掌握Struts2和OGNL的基础上,开发者可以进一步学习Struts2的其他组件和特性,如标签库、异常处理、国际化支持、拦截器机制、输入校验、文件上传和下载等,这些都是构建复杂Web应用不可或缺的组件和功能。

    ognl标签的使用案例

    在“使用OGNL和Struts2标签展示页面(一)”的资料中,可能包含了如何利用OGNL标签展示用户信息、处理表单数据和文件上传等实际应用场景。学习这些示例有助于理解OGNL在实际项目中的应用。 **8. 总结** OGNL标签...

    struts2的数据库操作和文件的上传下载

    由于文件比较大,所以就没有上传lib下面的架包,需要的可以自己去apache网站下载struts2的架包fileupload,io|logging|freemarker|mysql-connector-java|ognl|struts2-core|xwork 这些包。数据库在项目中。自己导入...

    Java实训教程 Java软件开发实战 Java开发框架介绍 struts2_8_文件上传与下载 共20页.pptx

    - **课程大纲**包含了Struts2各个方面的深入讲解,从入门介绍到高级特性,如Action详解、配置参数、OGNL表达式、标签库、国际化支持、数据验证、文件上传与下载、拦截器、转换器以及插件等内容,为学习者提供了全面...

    struts2文件上传总结

    在文件上传下载中,OGNL用于在Action与JSP页面间传递和处理数据。 以上是Struts2文件上传的基本流程和关键知识点,实际开发中还需考虑错误处理、异常捕获以及安全性等方面的问题,例如防止文件覆盖、非法文件上传等...

    struts2+DBUtils实现的用户信息增删改查,包含文件上传下载

    这个项目利用Struts2框架实现了用户信息的管理功能,包括添加、删除、修改和查询用户信息,并且包含了文件上传和下载的功能。以下是对这些知识点的详细说明: 1. **Struts2框架**:Struts2是基于Apache的开源框架,...

    值栈文件的上传与下载

    在JAVAEE应用开发中,值栈(Value Stack)是一个核心概念,主要被Struts2框架广泛使用。...通过理解并熟练运用上述知识点,开发者可以有效地在JAVAEE环境中实现值栈文件的上传与下载功能,提升应用的用户体验和安全性。

    ognl源码包值得用一用

    // 实现文件上传的核心 ServletFileUpload upload = new ServletFileUpload(factory); try { List&lt;FileItem&gt; list = upload.parseRequest(request); for (FileItem item : list) { if (item....

    struts2文件上传

    利用struts2上传文件 环境配置JDK1.8 Eclipse 版本 Version: Mars Release (4.5.0) tomcat版本7.0.40 注意的问题是文件上传的时候的enctype="multipart/form-data" 如果设置错误会报错 今天初次使用Struts 2做文件...

    视频在线观看 上传和下载

    【标题】:“视频在线观看 上传和下载” 这个标题揭示了我们要探讨的是一个与视频服务相关的项目,它涉及用户能够在线观看视频,并且支持视频的上传和下载功能。这种服务通常需要一套完整的后端系统来处理视频的...

    ExtJS实现多文件上传UploadDialog For ExtJS3.x

    我们需要将一系列Struts2相关的库文件复制到项目的`WebContent\lib`目录下,包括`struts2-codebehind-plugin-2.1.6.jar`、`struts2-core-2.1.6.jar`、`struts2-spring-plugin-2.1.6.jar`、`xwork-2.1.2.jar`、`ognl-...

    Struts2项目struts2 上传 下载 项目

    在这个“Struts2 上传下载项目”中,我们将深入探讨如何利用Struts2实现文件上传与下载功能,并结合MySQL数据库、DAO(数据访问对象)层以及MVC架构来构建一个完整的应用。 1. **Struts2框架基础** Struts2的核心...

    Struts上传需要的包

    在文件上传中,它提供ActionForm类的替代——ActionSupport,其中包含了处理文件上传的方法,如getServletFile()和getServletFiles()。 2. **freemarker-2.3.8.jar**:FreeMarker是一个强大的模板引擎,用于生成...

    Struts2源码(xwork|asm|commons|freemark|ognl)

    例如,Commons Lang提供了字符串处理、反射、日期时间等操作,而Commons BeanUtils帮助简化对象属性的设置和获取,Commons FileUpload则处理HTTP文件上传等。 `freemarker`是一个强大的模板引擎,用于生成动态HTML...

    Struct2的上传与下载

    以上知识点涵盖了Struts2框架在处理文件上传下载时涉及的主要技术和实践。通过对这些内容的学习和掌握,开发者能够更好地运用Strut2来构建高效、稳定的Web应用。在实际项目中,可以结合Struts2提供的文档、示例代码...

    Struts2文件上传

    ### Struts2文件上传知识点详解 #### 一、概述 在Web应用开发中,文件上传是一项常见的需求。Struts2框架提供了便捷的方式来处理文件上传功能。...希望本文能帮助您更好地理解和掌握Struts2框架下的文件上传技术。

    java struts2 上传包含jad等文件类型

    总的来说,要实现Java Struts2框架下上传jad等文件类型,我们需要配置Struts2的文件上传支持,编写处理文件上传的Action类,以及可能需要解析和处理jad文件的额外逻辑。以上各步骤都需要对Struts2框架、文件上传机制...

    Struts2中实现文件上传

    在Struts2中实现文件上传是一项常见的任务,这通常涉及到处理用户通过表单提交的文件,例如图片、文档或其他类型的数据。这个过程涉及到多个步骤和技术,包括前端HTML表单的构造、后端Struts2的配置以及文件存储策略...

Global site tag (gtag.js) - Google Analytics