GAE(Google App Engine)上Java开发两条Tips

 

 GAE(Google App Engine)上Java开发两条Tips

 

1、所有的非jsp,java文件需要在appengine-config.xml中配置为static-files 或者 resource-files,否则无法上传到GAE服务器

2、所有跑在GAE上的对象必须实现Serializable接口,否则可能出错

 

 


Tags: Google  struts  struts2  java  java基础  gae  
GAE(Google App Engine)上使用Struts2

 

使用Struts2时候报异常

WARNING: Caught OgnlException while setting property 'location' on type 
'org.apache.struts2.dispatcher.ServletDispatcherResult'. 
java.lang.IllegalAccessException: Method [public void 
org.apache.struts2.dispatcher.StrutsResultSupport.setLocation(java.lang.Str ing)] 
cannot be accessed. 
   at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:508) 
   at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:812)

 

SEVERE: ParametersInterceptor - [setParameters]: Unexpected Exception 
caught setting 'name' on 'class com.ociweb.gaestruts2.HelloAction: Error 
setting expression 'name' with value '[Ljava.lang.String;@24de7d'

 

解决方法:

1. 建class如下..............

 


Tags: Google  struts  struts2  java  java基础  gae  
Struts2 ognl中的#、%和$符号用法说明

  #、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。

1.#符号的用途一般有三种。
   1)访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute(”msg”) 。
    2)用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
    3)用来构造Map,例如示例中的#{'foo1':'bar1','foo2':'bar2'}。

2.%符号................


Tags: struts2  标签  taglib  struts  ONGL  
在Struts 2.0中国际化(i18n)您的应用程序

国际化是商业系统中不可或缺的一部分,所以无论您学习的是什么Web框架,它都是必须掌握的技能。

其实,Struts 1.x在此部分已经做得相当不错了。它极大地简化了我们程序员在做国际化时所需的工作,例如,如果您要输出一条国际化的信息,只需在代码包中加入FILE-NAME_xx_XX.properties(其中FILE-NAME为默认资源文件的文件名),然后在struts-config.xml中指明其路径,再在页面用<bean:message>标志输出即可。

不过,所谓“没有最好,只有更好”。Struts 2.0并没有在这部分止步,而是在原有的简单易用的基础上,将其做得更灵活、更强大。

国际化Hello World

下面让我们看一个例子——HelloWorld。这个例子演示如何根据用户浏览器的设置输出相应的HelloWorld。.........


Tags: struts2  标签  taglib  struts  ONGL  
关于J2EE分层及框架的比喻
liujunsong 写道
打个比方.
现在的j2ee开发,就好象对面来了一个人.
最外面穿着一件风衣(HTML)
风衣里面穿着西装(Struts)
西装里面穿着马甲(Spring)
马甲里面穿着衬衫(Hibernate)
衬衫的里面才是真实的人(数据库)
全部衣服都是采用棉布做成的(Java)
每件衣服上都可能有其他配件(第3方库)
各件衣服之间需要配套使用..............
Tags: java  javajsp  java基础  Java容器  Spring  struts标签  struts2  Struts Menu  struts  Hibernate  框架  模型  模式  
使用Struts2开发Java Web应用程序(目录)收藏

第一部分 Struts入门
    第一章 Struts2 概览(beta)

    第二章 一个简单的Login 应用程序(beta)
       Struts 2 概要


    第三章Struts配置(beta)
        第三章 Struts配置(第一节 struts.properties配置)
        第三章 Struts配置(第二节 Actin配置)
        第三章 Struts配置(第三~七节其他配置)

    第四章 Tablib Struts标签库
        4.1节 通用标签
        4.2节 UI标签
        4.3节 主题和模板
        4.4节 AJAX标签(试验阶段)
        4.5节 OGNL
        4.6节 Tag 语法
        4.7 JSP,Freemarker和Velocity

    第五章 Validation(beta)
    Struts2 校验详细比较(XML配置部分,包含服务端校验,客户端纯JavaScript校验,Ajax校验)....


Tags: struts2  开发  java  配置  
Struts2 之使用通配符简化配置收藏

<action .... class="org.sandbox.base.struts.sys.{1}Action" ....>,这里的{1}是最棒的,可以根据actionName寻找并加载相应的Action Class。

系统中,总存在一些简单的对象,需要提供CRUD功能,如果把它们都放在同一个namespace中,并按照同样的模式进行实现,则只需要上述一个配置文件就够了。

 同时,通过这种配置,如struts的doc所描述,同时可以避免暴露Action类的方法,提高安全性。

 有两点小小缺憾:

  1. jsp文件名,原本的习惯是文件名全部小写,并以下划线"_"分割单词。而按照上述配置,因为类名的命名规范为首字母大写(CamelCase),两者有所冲突
  2. 从代码管理的需求角度,简单对象管理模块可能分布在多个目录/package下面,如果struts支持在package定义中设置action class的package(像hibernate配置文件),则可以讲上述配置做成一个abstract配置,其中的action class不写package,只写SimpleName部分,则可以进一步简化配置。

Tags: struts2  开发  java  配置  
Struts 应用转移到 Struts 2 ( 二 )

  在上篇文章中,我们已经从较高层解释了整个框架的结构,请求流程的基础,配置方式和Struts2和Struts1的不同之处。了解这些后从Struts 应用 迁移到 Struts 2 不再是难事。
    在这篇文章中,我们将会更详细地讲述如何由Struts 的action转为Struts 2的action。

一个应用的例子
这个例子选择了大家都熟悉的 - weblog. 简单地介绍下这例子的功能需求:
 增加一个新的日志

  1. 察看一个日志
  2. 修改一个日志
  3. 删除一个日志
  4. 列出所有日至  

     增删修改(CRUD),是项目中最为普遍的应用。

总结
    我们并不可能在这篇文章中覆盖所有的内容,如果你需要更好的了解整个框架,还有其他的实现方式和选项,这里有几点可以供你参考:

 

  • 配置拦截器和拦截器组 - 以Struts2-core JAR 包里的"struts-default.xml" 文件作为例子。"struts-default.xml" 演示了如何配置你自己的拦截器组,包含新的拦截器,你可以尝试实现自己的拦截器。
  • 配置文件中的通配符模式 - 你可以选择使用Struts2中的通配符模式来简化你的配置。
  • 通过 ParameterAware 接口把form值传入maps中 - 你可以在Struct2中配置,让所有request的form属性都存于action的一个map中,这样就不需要专门再为action指定model / transfer / value object了。这和Struts的dynamic form特点很相似。

    也许到现在为,也许你有个疑问,"迁移后我们的界面是否可以完全重用呢?",答案是yes。你能从这里, 下载到我这篇文章中的完整源代码,你可以自己尝试把URL的扩展名由".do" 改为 ".action",使用的页面时一样的。除此之外,其实用JSTL来代替Struts taglib也是很容易的。
在下一篇文章中,我们将讲述用户界面,讨论themes 和 tags; 如何做validation;  如何重用UI控件。
 


Tags: struts  struts2  开发  java  
将Struts应用迁移到Struts 2(一)

有很多人都很熟悉 Struts, 无论是从项目中直接获得的实战经验还是从书中了解到的。我们这一系列文章,将通过一个由 Stuts 转移到 Struts2 简单的例子向大家展现Struts2的所有特征。
    在我们开始这个例子之前,你需要去知道一点 Struts2的背景知识。 在第一部分的文章中,我们将介绍Struts2与Struts的核心框架的不同点,以助于更好地了解其他方面的整合。第二部分中,我们将深入探讨 actions 的差别, action相关的框架特征,和action配置。在最后一部分中,我们将会讲述 user interface,我们也会讲到其架构,UI构件,themes 和标签。 还有如何为你的应用加上新的外观。
    我们并不打算谈及迁移过程的所有细节方面,我们只是从出发点开始介绍Struts2 的概念和现在可用的所有特征。但拥有这些知识,你将在以后Struts2的应用中无往而不利。
   
Struts的历史
    Struts的第一个版本 是在 2001年5月份发布。它提供了一个Web应用的解决方案,如何让 JSPs 和 servlets 共存去提供清晰的分离视图和业务和应用逻辑的架构。在Struts之前,最通常的做法是在JSP中加入业务和应用逻辑,或者在servlets中生成视图。
    自从第一个版本的发布, Struts 实际上已成为业界公认的Web应用标准。但随着时间的推移,Web应用框架经常变化的需求,产生了几个下一代 Struts的解决方案。其中两个可选方案是Shale 和 Struts Ti。 Shale 是一个基于构建的框架,并在最近成为 Apache 中的重要项目。而 Struts Ti 则是继续坚持 MVC模式的基础上改进,继续Struts的成功经验。
    WebWork项目是在2002年3月发布的,它对Struts式框架进行了革命性改进,引进了不少新的思想,概念和功能,但和原Struts代码并不兼容。WebWork是一个成熟的框架,经过了好几次重大的改进与发布。在2005年12月,WebWork与Struts Ti决定合拼, 再此同时, Struts Ti 改名为 Struts Action Framework 2.0,成为Struts真正的下一代。


Tags: struts  struts2  开发  java  
struts2.0 使用 方法名.do 访问action中的方法,出现没有映射错误的解决

想用 方法名 + .do 的方法直接访问Action中的方法,可以一直访问不到,出现 no mapped 的错误. 测试几次,把问题锁定在 struts.properties 配置文件中.
经过查阅该配置的详解之后,发现一项配置我没有.加上之后就好了.
引用
struts.enable.SlashesInActionNames
   该属性设置Struts 2是否允许在Action名中使用斜线,该属性的默认值是false。如果开发者希望允许在Action名中使用斜线,则可设置该属性为true。
原因是,我在配置Action的时候,name中间带有 "/":
 

Xml代码

......................


Tags: struts2  struts  java  ACTION  
struts2.0的标签库(简介)
用过struts1.x的人都知道,标签库有html、bean、logic、tiles,而struts2.0里的标签却没有分类,只用在jsp头文件加上<%@ taglib prefix="s" uri="/struts-tags" %>就能使用struts2.0的标签库下面就介绍下每个标签的用法(有错请指正):A:-----超链接,类似于html里的-----执行一个view里面的一个action-----如果action的errors有值那么显示出来-----如果action的message有值那么显示出来-----添加一个值到list,类似于list.add();-----自动完成标签的内容,这个是ajaxB:-----类似于struts1.x中的,JavaBean的值.............
Tags: struts2  标签  ONGL  struts  
Struts2.0新标签的用法
一、 url标签  简介 url标签用于生成一个URL地址,可以通过url标签指定param子元素,从而向指定URL发送请求参数。 二、 s:checkboxlist标签  简介 Checkboxlist标签可以一次创建多个复选框,用于一次生成多个HTML标签中的,它根据list属性指定的集合来生成多个复选框。 三、 使用s:combobox生成下拉输入框  简介 Combobox标签生成一个单行文本框和下拉列表框的组合,但两个表单元素只对应一个请求参数,只有单行文本框里的值才包含请求参数,而下拉列表框则只是用于辅助输入,并没有name,也不会产生请求参数。使用该标签,需要指定一个list属性,该list属性指定的集合将用于生成列表项。 四、 使用s:datetimepicker生成日期选择框  简介 Datetimepicker标签生成一个日期,时间下拉选择框,当我们使用该日期,时间选择框选择某个日期,时间,系统会自动将选中的日期,时间输入指定文本框。 五、 使用s:select生成下拉选择框  简介 Select 标签用于生成一个下拉列表框,通过为该元素指定list属性,系统会使用list属性指定的集合来生成下拉列表框的选项。 六、使用s:radio生成多个单选框  简介 s:radio生成多个单选框。 七、使用s:optgroup生成下拉选择框的选项组  简介 Optgroup标签用于生成一个下拉列表框的选项组。 八、使用s:optiontransferselect来生成可移动列表项的下拉列表框  简介 使用s:optiontransferselect来生成可移动列表项的下拉列表框。 ....................
Tags: struts2  标签  用法  ONGL  
分页:[«] 1[2] [»]
Feed订阅集
勤劳致富^.^
Powered By Z-Blog   STYLE by busfly . FatMouse
Copyright © 2007 巴士飞扬技术博客. . 沪ICP备07027972号. 会员群1(VS为主):3769186.