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

ognl以及令牌以及开头的一点方法

 
阅读更多

ValueStack中存储数据

 

得到值栈的第一种方式(真麻烦)

 

ActionContext actionContext = ActionContext . getContext();
Map<String,Object> reqmap = (Map<String, Object>) actionContext.get("request");
ValueStack valueStack = (ValueStack) reqmap.get("struts.valueStack");

 

 

 

第二种方式

 

HttpServletRequest request= ServletActionContext.getRequest();
ValueStack valueStack = (ValueStack)request.getAttribute(“struts.valueStack”);

 

 

 

第三种方式

 

ActionContext actionContext = ActionContext.getCOntext();
ValueStack valueStack = actionContext.getValueStack();

 

 

 

这个第二种第三种有点像昨天那个啊,好像是得到context的方式?

等下我瞅瞅

哦不对 Session ,都是莫名其妙的到request

然后从request里面去出来带引号的名字

 

向值栈中存储数据

valueStack.put(new Student(小黑,20));

这个就放在栈顶了,student类的属性当成name

 

还有一个也能存就是直接放外面用private

 

setValue(String str,Object obj)

加一个#号,就是向ActionContext中存键值对,键是name,值是pipipi

valueStack.setValue(#name,pipipipi);

不加#号,就把第一个属性名覆盖了,如果没有这个属性名,就报错了

valuStack.setValue(name,bibibib);

 

 

set(String key ,Object obj)

封装一个hashmap,把key的值当键,

valueStack.set(stu,new new Student(xiaohua,21);

valueStack.push(new Student(xiaohua,22);

 

我得看看这个setpush有啥用

 

 

这个是JSP页面

本来不想写,实在是不知道写什么了

就勉强强写吧

<s:debug></s:debug>

<s:property value=[0].name/>

<s:property value=[1].name/>

<s:property value=[2].name/>

这个问题就是,我后放入了很多没有用的东西(后放的在最上面)

然后它一个一个开始画框,

1,2,3,4,56

这些取的值永远都是第一个

 

好了我们看看实现原理

 

ActionContext context = ActionContext.getContext();

ValueStack valueStack=context.getValueStack();

Object obj = ValueStack.findValue(name);

out.println(obj);

这原理好特么浅啊。。。。。。。

 

下一项吧

serlvet中的查找顺序

pageContext,request,session,application

Struts中使用el表达式的搜索顺序

request.ValueStack,ActionContext,Session,Applilcation

从值栈找不到,会去actioncontext中查找

 

 

  没有使用var,每次迭代出来的对象放入 值栈的栈顶                     

   

      <s:iterator value="stuts" status="st">
           <tr>
              <td><s:property value="#st.count"/></td>
              <td><s:property value="name"/></td>
              <td><s:property value="age"/></td>
           </tr>
         </s:iterator>  
       </table>
 
  <s:iterator value="stuts.{?#this.age>22}" status="st">
           <tr>
              <td><s:property value="#st.count"/></td>
              <td><s:property value="name"/></td>
              <td><s:property value="age"/></td>
           </tr>
         </s:iterator>  
 
 
     <s:iterator value="stuts" var="stu" status="st">
           <tr>
              <td><s:property value="#st.count"/></td>
              <td><s:property value="#stu.name"/></td>
              <td><s:property value="#stu.age"/></td>
           </tr>
         </s:iterator>

 

 

 

     <!--

            ognl投影:筛选字段                                      

         -->

         <s:iterator value="stuts.{name}" status="st">

           <tr>

              <td><s:property value="#st.count"/></td>

              <td><s:property /></td>

           </tr>

         </s:iterator>  

       </table>

       

自己理解吧贼简单看一遍就懂了但是我现在不想看了嘤嘤嘤

 

 

 

 

哦对这个东西叫令牌,想了半天没想起来

首先在jsp页面上写

<s:token></s:token>

然后再Struts中配置

就是加个拦截器的功效

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

记得把默认加进去

<interceptor-ref name=defaultStack></

 

啊不写了 还有个什么界面

不管了

 

 

出道题:暂时想的

1:用户登录

(设上用户名密码验证,后台验证)

2:登录后看到一个表

(用ognl看出来)

(这个表就是注册用户表吧)

3:新增用户

(时间格式,后台验证)

(设置回显,设置回显样式)

 

不过拦截器是干嘛来着,哦对,看有没有Session

可以用在show界面前面,ok就这样

也可以想一点别的,关于拦截器

 

 

写项目的小总结,边写边总结,

那估计会写的更慢了。。。

继承的是ActionSupport,实现的是 ModelDriven接口

怎么记不住呢

 

验证器怎么写来着。。。

 

总算被我(在帮助下)找到了原始的文件

验证器源文件:

Web App Libraries

xwork-core-2.3.15.3.jar下(dtd约束也在)

com.opensymphony.xwork2

validator

validators

default.xml

给自己挖的两个坑

只用写 类名-动作名-validation.xml

就可以了

不过是动作名!!动作名!!

记得还要写返回结果,所以才能看到啊(摊手)

<result name=input>/login.jsp</result>

 

C3P0怎么写又忘了。。。。。。。。。。。。

private static DataSource ds = new ComboPooledDataSource();

 

public static DataSource getDataSource(){

return ds;

 

遇到了谜一样的数据库链接失败问题不管了

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    OGNL静态方法定义

    这个类提供了静态方法来解析和解释OGNL表达式,使得开发者能够在运行时动态地访问和操作对象的属性和方法。 在Java编程中,OGNL提供了一种简洁的方式来表达复杂的对象导航路径,它允许我们通过简单的字符串表达式来...

    OGNL源代码以及个人笔记

    你可以通过阅读源码了解如何实现表达式的解析和求值,以及OGNL如何处理各种复杂情况,如对象链的递归查找、动态方法调用等。此外,源码中的注释通常会提供关于特定函数或类用途的详细信息,这对于学习和调试非常有...

    ognl源代码以及api文档

    1. **Ognl类**:ognl库的主要入口点,提供静态方法来解析和执行ognl表达式,如`Ognl.getValue()`和`Ognl.setValue()`。 2. **Expression类**:表示ognl表达式,可以被编译并多次执行,提高性能。 3. **OgnlContext...

    ognl表达式 ognl表达式

    `ValueStack`是一个存储数据的栈结构,包含了所有的模型对象以及请求、会话和应用范围的数据。开发者可以通过EL表达式直接访问`ValueStack`中的数据,例如: ```jsp ${foo} // 访问ValueStack中的foo ``` 需要注意...

    ognl.jar资源包

    camel-ognl-1.6.4.jar, camel-ognl-2.8.1.jar, com.springsource.org.ognl-2.6.9.jar, com.springsource.org.ognl-sources-2.6.9.jar, ognl-2.5.1.jar, ognl-2.6.11.jar, ognl-2.6.3.jar, ognl-2.6.5.jar, ognl-...

    ognl源码和ognl帮助文档.rar

    在这个压缩包中,包含的是OGNL的源码和帮助文档,这对于深入理解OGNL的工作原理以及在Struts2中的应用非常有帮助。 OGNL的核心特性包括: 1. **对象导航**:OGNL允许我们通过`.`操作符来访问对象的属性,甚至可以...

    struts2.0中的ognl

    3. 动态方法调用:OGNL支持动态方法调用,允许开发者根据运行时的条件选择调用哪个方法,增加了代码的可扩展性。 4. EL(表达式语言)增强:OGNL作为Struts2的默认EL,提供更丰富的功能,比如可以方便地访问集合、...

    ognl源码及API

    通过阅读源码,你可以了解OGNL是如何处理复杂的数据结构,如数组、集合和映射,以及如何处理方法调用和条件语句的。 对于开发人员来说,理解ognl的异常处理机制也非常重要。当OGNL表达式执行出错时,它会抛出`...

    ognl英文帮助文档

    1. **OGNL基本语法**:介绍OGNL的基本表达式,包括访问对象属性(如`obj.property`),调用方法(如`obj.method()`),以及数组和集合的操作(如`array[0]`,`collection.size()`)。 2. **OGNL的上下文(Context)...

    ognl图形导航语言

    OGNL,全称为Object-Graph Navigation Language,是一种强大的开源表达式语言,主要用于便捷地操作对象的属性和方法。在Struts2框架中,OGNL作为默认的表达式语言发挥着核心作用,允许开发者以简洁的方式访问和修改...

    开发工具 ognl-3.1.12

    开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12开发工具 ognl-3.1.12...

    OGNL中文版详细文档

    OGNL特有的对象索引属性(Object Indexed Properties) 调用方法 变量引用 带括号的表达式 子表达式(Subexpressions)链 构造集合(Collection) 列表(Lists) 数组 映射表(Maps) 对集合的投影(Project) 在集合...

    OGNL语言中文资料

    这篇中文资料将帮助你深入理解OGNL的核心概念、语法特性以及实际应用。 一、OGNL的基础知识 1. **对象导航**:OGNL的名称来源于其核心功能——对象图导航。它可以轻松地遍历对象的属性,甚至通过链式调用来访问嵌套...

    ognl-2.7.3-src

    通过研究 `ognl-2.7.3-src`,开发者可以深入理解 OGNL 的工作原理,这对于优化应用程序性能、调试 OGNL 相关问题以及扩展 OGNL 功能都大有裨益。同时,对于理解其他类似的表达式语言和框架也有一定的借鉴意义。

    ognl的jar包

    它的设计目标是提供一种简洁、直观的方式来操纵对象图,包括对象的方法调用、属性访问以及复杂的逻辑和算术运算。在Java Web开发框架如Struts2中,OGNL作为默认的表示层表达式语言被广泛应用。 标题中的“ognl的jar...

    OGNL表达式

    3. **支持赋值操作和表达式串联**:OGNL支持赋值操作以及多个表达式的串联,例如`price = 100, discount = 0.8, calculatePrice()`,这个表达式最终会返回计算后的价格`80`。 4. **访问OGNL上下文(OGNL context)和...

    ognl-3.2.21-API文档-中文版.zip

    赠送jar包:ognl-3.2.21.jar; 赠送原API文档:ognl-3.2.21-javadoc.jar; 赠送源代码:ognl-3.2.21-sources.jar; 赠送Maven依赖信息文件:ognl-3.2.21.pom; 包含翻译后的API文档:ognl-3.2.21-javadoc-API文档-...

    OGNL教程,简单,看完懂OGNL语言

    OGNL还支持更高级的特性,如条件表达式、列表映射、选择操作、以及函数调用等。例如,`user.addresses[0].city`可以获取用户地址列表的第一个地址的所在城市,而`user.getAge() &gt; 18`则是一个条件表达式,判断用户...

    ognl源码.rar

    2. **自省(Introspection)**:通过Java反射API,OGNL能动态查找和调用对象的方法,以及读写属性。 3. **列表和映射访问**:支持数组、列表、集合和映射的直接访问,例如`list[0]`或`map['key']`。 4. **方法调用...

    ognl源码

    阅读OGNL源码可以帮助我们理解其内部工作原理,特别是对于解析器和求值器的设计,以及如何处理各种OGNL语法和操作。这将有助于我们在使用OGNL时更好地调试和优化代码。 总结,OGNL作为强大的表达式语言,其源码揭示...

Global site tag (gtag.js) - Google Analytics