Google app Engine 对struts2.1.8的不完全支持

忙碌了5天,总算把个人博客给建成了,期间学到了很多东西,整个系统是基于 Google app Engine for Java的,现在好像还不是正式版。

 

所 以很多jar包都不支持,本来想用的很多技术 都用不了了。呵呵。下面把问题给罗列出来,以便以后有据可查

(1) :struts2的支持

是可以支持的,但是需要另外的做一些动作,添加如下的监听 器

 

 

package com.util;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

import ognl.OgnlRuntime;

public class InitListener  implements ServletContextListener,
HttpSessionAttributeListener,HttpSessionListener{

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        OgnlRuntime.setSecurityManager(null);
        
    }

    @Override
    public void attributeAdded(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void sessionCreated(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        
    }

}

 

然后在web.xml文件中添加这个监听器

<listener>
  <listener-class>com.util.InitListener</listener-class>
 </listener>

网上很多文章,就是这样子说的,我也是照做的,然后就添加 struts2所必需的jar包,不过在这里有一点要注意

我是用myeclipse8.0做的开发,是用的 Google的那个插件,生成的项目,网站根目录的名字是war,当把jar包放在lib目录下的时候

他并不能自动的添加到项目里头,所以还要手工点击增加额外 jar包的方式添加进去,这里也有一点要注意的,就是struts的配置

文件

<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
    <constant name="struts.configuration.xml.reload" value="false" />
    <!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
    <constant name="struts.devMode" value="false" />

这2个都要关闭,不然会报异常的,报的是包读取权限异常,小弟不才,也不知道是什么原因造成的。

最后 要检查web.xml  他有时候会自动增加一个jsp:config 里面是BASIC 这个要去掉 不然项目无法启动

(2) strut2的补充。

当启动的时候,会发现缺少一些xalan的jar包,这个时候要的jar包添加到项目里面。下载xalan-j_2_7 把解压开的目录中的jar包都加进去

ok 这个时候项目启动成功了

(3)struts2的标签

经测试,一些标签使用是会报异常的 ,原因是使用了现在不在白名单中的jar包。

目前发现下面是标签是不能用的

<s:textfield>,<s:a>

可能还有更多把,不过我目前就发现这几个

(3) 其他标签库

有一个地方要用到迭代遍历出list的元素,在做一个更新功能 需要连接把参数传过去 发现<s:a>不能用 恼火啊

于是就想想用jstl标签。但是默认的web.xml版本是2.3的 而且默认没有jstl.jar包 把jar包加进去

写<c:foreach> 又报异常了,还是那个兼容性问题。

于是上网找其他的标签。最后发现display标签能够完美支持,呵呵 好 不错 就用你了

(4)一点教训

做个人博客,对struts2 以前就是了解了一点,做过比较小的项目。那个ognl 拦截器的 都不懂,这个项目也只是用action来转发。

但是到后期快完成时候,哈哈,发现很多问题,每个页面都是经过action转发的,自己输入地址栏的方式都访问不了页面了啊。很多地方都是bug ,忙碌几天,也累了,先休息下,至少现在可以展示个人文章了。在找个时间来好好的重整这个bug

 

博客主页:http://rmh2010blog.appspot.com/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值