`

ognl 之运算符--string 字符串 计算 表达式

 
阅读更多

OGNL 作为struts2的一个表达式,这里只介绍它的运算符

     用途,一个string的字符串 String a=“1+1”,如何计算出 a=2 呢,很多开源jar包都可以做到这一点,自己写个代码也可以实现,这里,用ognl运算符来实现,看代码:

 

package test;

import ognl.Ognl;
import ognl.OgnlException;

public class COgnlTest<Variable> {
 public static void main(String[] args) throws ScriptException, OgnlException{
  //这样是不行的
//  String a="1+1";
//  System.out.println(Long.valueOf(a));
  //这样也是不行的
  Object whoExp = Ognl.parseExpression("1+1");
  System.out.println(whoExp);

   String dep=null;
   Object output = Ognl.getValue("1+1", dep);
//   String a="1l";
//   String b="1l";
//   Object output = Ognl.getValue("#a==#b", dep);
   System.out.println("output:"+output);

 }
 
}

 

分享到:
评论

相关推荐

    ognl表达式案例

    7. **类型转换**:`(String) myValue` - 将`myValue`强制转换为字符串类型。 在实际项目中,开发者经常利用OGNL的强大功能来实现复杂的逻辑,比如动态计算、条件判断、集合操作等。但是,由于OGNL允许任意的Java...

    struts2 OGNL 表达式及各种标签的使用

    - 自动转换:OGNL会自动尝试将字符串转换为适当的数据类型。 - 双向数据绑定:在JSP中,`&lt;s:textfield name="user.name" /&gt;`会自动绑定到Action的`user`属性的`name`字段。 4. **Struts2 OGNL标签** - `...

    struts2_ognl实验代码

    OGNL允许我们直接通过字符串表达式来访问和修改对象的属性。例如,如果我们有一个用户对象`user`,并想获取其`name`属性,我们可以使用`user.name`这样的表达式。OGNL还支持方法调用、集合操作、运算符等,使得它在...

    ognl guide

    5. **条件表达式**:OGNL支持三元运算符,如`(condition) ? valueIfTrue : valueIfFalse`。 6. **数组和列表初始化**:可以使用花括号`{}`来初始化数组或列表,如`new String[]{"a", "b", "c"}`。 7. **Map操作**:...

    java dhc,计算

    Java的`+`运算符可以用于字符串连接,`String.format`方法则用于格式化输出。 5. **条件语句和循环**:在处理表达式时,我们可能需要根据条件改变计算路径,如`if`语句和`switch`语句。循环结构(`for`,`while`,`...

    Calculator.zip

    4. **编译器技术**:在Java中,我们可以使用`javacompiler` API或者第三方库如JEXL (Java Expression Language) 或者Ognl (Object-Graph Navigation Language) 来编译和执行字符串表达式。这些工具能够将字符串公式...

    struts2的学习笔记+测试源代码

    - 字符串连接:`string1 ~ string2`,相当于`string1 + string2`。 3. **上下文(Context)**: OGNL表达式执行时会有一个上下文,其中包含变量和对象。在Struts2中,这个上下文包含了Action实例、请求、会话和...

    freemarker总结

    2,使用+运算符时,如果一边是数字,一边是字符串,就会自动将数字转换为字符串再连接,如:${3 + "5"},结果是:35 使用内建的int函数可对数值取整,如: ${ (x/2)?int } ${ 1.1?int } ${ 1.999?int } ${ -1.1?int } ...

    MVel 2.0.15 doc

    它的主要功能是提供简洁的语法来访问对象属性、执行循环和条件判断,以及进行字符串格式化等。MVEL模板允许开发者以一种声明式的方式将动态数据嵌入到静态文本中,常用于生成HTML或者其他格式的输出。 **基本对象...

    Java学习笔记-个人整理的

    {3.4}正则表达式}{71}{section.3.4} {3.5}StringBuffer}{75}{section.3.5} {3.6}StringBuilder}{76}{section.3.6} {3.7}StringBuilder与StringBuffer的缺点}{76}{section.3.7} {3.8}内部类}{77}{section.3.8} ...

Global site tag (gtag.js) - Google Analytics