`
esffor
  • 浏览: 1370589 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2使用OGNL表达式封装输入数据

阅读更多

我们在action中有一个封装好的user对象,其中有username和password两个属性

我们可以在页面上直接使用user,username作为输入框的名字,struts2可以直接把输入的username和password封装到user对象中,这点和webwork2如出一辙

 

User.java

 

package HelloWorld;

public class User ...{
    
private String username;
      
private String password;
      
private String[] books;
      
public String[] getBooks() ...{
            
return books;
        }

        
public void setBooks(String[] books) ...{
            
this.books = books;
        }

        
public String getUsername() ...{
            
return username;
        }

        
public void setUsername(String username) ...{
            
this.username = username;
        }

        
public String getPassword() ...{
            
return password;
        }

        
public void setPassword(String password) ...{
            
this.password = password;
        }

}

LoginAction.java

 

package HelloWorld;

import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;

public class LoginAction implements Action...{
 
 
private String tip;

  
private User user;

public User getUser() ...{
    
return user;
}


public void setUser(User user) ...{
    
this.user = user;
}


public String execute() throws Exception...{
      
if(this.getUser().getUsername().equals("admin")&&this.getUser().getPassword().equals("1234"))...{
          ActionContext.getContext().getSession().put(
"user"this.getUser().getUsername());
          BookService bs
=new BookService();
          
this.getUser().setBooks(bs.getBooks());
          
this.setTip("welcome welcome");
          
return SUCCESS;
      }
else...{
          
return ERROR;
      }

  }


public String getTip() ...{
    
return tip;
}

public void setTip(String tip) ...{
    
this.tip = tip;
}



  
}

index.jsp输入页面

 

<%...@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding
="gb2312"
%>
<%...@ taglib prefix="s" uri="/struts-tags" %>
<html>
  
<head> 
    
<title></title>
  
</head>
  
<body>      

     
<s:form action="Login">
       
<s:textfield name="user.username" key="username"></s:textfield>
       
<s:textfield name="user.password" key="password"></s:textfield>
       
<s:submit value="login"></s:submit>
     
</s:form>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
   
  
</body>
</html>

 

 

分享到:
评论
1 楼 lamtianwangzhao 2010-06-03  
这篇文章很简单,但是对于像我这种初学者很有帮助!谢谢lz的分享~! 

相关推荐

    ognl表达式 ognl表达式

    在Struts2框架中,OGNL表达式被广泛应用于视图层,比如在JSP页面中用来获取数据。OGNL表达式的语法简洁明了,例如: - **直接调用方法**:`xxx.sayHello()`。 - **访问静态方法和常量**:`@java.lang.String@format...

    struts2对Ognl的封装--PropertyAccessor

    "struts2对Ognl的封装--PropertyAccessor"这个主题主要涉及Struts2框架如何处理OGNL表达式,特别是如何通过PropertyAccessor接口来访问和操作对象的属性。 首先,我们来了解什么是OGNL。OGNL是Struts2的核心组件之...

    struts2对Ognl的封装--TypeConverter

    总的来说,Struts2对OGNL的封装主要体现在TypeConverter上,这是一个强大的工具,允许开发者自定义数据类型转换,以适应各种复杂的业务场景。理解并熟练使用TypeConverter能够极大地提升Struts2应用的灵活性和可维护...

    struts2标签和OGNL表达式

    使用OGNL表达式的一个关键原因是Struts2对HttpServletRequest进行了封装,创建了StrutsRequestWrapper类,这允许OGNL在不直接操作原始HTTP请求对象的情况下,仍能访问请求参数和其他特性,提高了代码的简洁性和可...

    struts2中OGNL的一些概念及原理说明

    不过需要注意的是,OGNL表达式通常需要嵌入在Struts2的特定标签内才能发挥作用。 4. **OGNL的六种使用方法**:在实际应用中,OGNL表达式具有多种用途,包括但不限于: - **基本用法**:如上例所示,直接通过对象...

    struts2中OGNL使用源自javaWeb编程王者归来

    这是因为Struts2将Servlet API的对象封装在ActionContext中,然后通过OGNL表达式可以方便地访问这些对象。 在实例中,你可能已经创建了一个Servlet对象并将值存储在其属性中。通过OGNL,你可以在JSP页面或Action类...

    Struts2 S2-029远程代码执行漏洞初探1

    在 Struts2 中,标签库使用 OGNL 表达式来获取对象数据,例如 `&lt;s:property value="#parameters.msg" /&gt;`,Struts2 会解析 value 中的值,并当作 OGNL 表达式进行执行,获取到 parameters 对象的 msg 属性。...

    Struts2五种数据封装Demo

    3. **使用OGNL(Object-Graph Navigation Language)**:直接在Action类的方法中使用OGNL表达式来获取和设置参数。 4. **使用ModelDriven接口**:实现`ModelDriven`接口,创建一个Model对象,Struts2会自动将请求...

    struts2数据封装源码

    7. **OGNL表达式语言**:Struts2使用OGNL(Object-Graph Navigation Language)作为默认的表达式语言,用于在Action类、值栈和视图之间传递数据。OGNL可以方便地访问Action的属性,以及在JSP页面上动态地展示和操作...

    struts2 Ognl表单提交问题

    - **改进后的请求处理类**(`LoginAction.java`):引入一个新的内部类`UserInfo`用于封装表单数据,并使用OGNL表达式进行数据绑定。 #### 四、改进后方案的详细实现 ##### 1. 登录页面 (`login.jsp`) ```jsp ;...

    【张冰Struts2学习笔记】0202_Struts2的三种接收用户输入的方法

    Struts2基于OGNL(Object-Graph Navigation Language)表达式语言,可以直接在Action方法的参数中使用ognl表达式来获取表单数据。这种方式更加灵活,可以处理动态或复杂的表单数据。 ```java public class ...

    留言板留言板struts2留言板struts2

    5. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为默认表达式语言,用于在Action和视图之间传递数据。通过OGNL,可以在JSP页面中直接访问Action中的属性,或者在Action中动态设置模型数据。 6. ...

    struts2标签库

    ### Struts2标签库详解 ...通过上述介绍可以看出,Struts2标签库不仅提供了丰富的标签来简化Web页面的开发,还通过OGNL表达式增强了数据的处理能力。合理运用这些标签和技术,可以帮助开发者快速构建高质量的应用程序。

    struts2框架的使用

    在JSP页面中,我们可以直接使用OGNL表达式来访问Action中的属性,实现数据的展示。 6. **ActionContext**:ActionContext是Struts2中用于存储请求上下文信息的容器,包括请求参数、session、应用范围内的对象等。在...

    struts1和struts2的区别

    - **Struts2**: 使用OGNL进行数据绑定,支持更高级的数据绑定操作。 #### 验证机制 - **Struts1**: 支持ActionForm的内置验证机制,并且可以通过Commons Validator进行扩展。 - **Struts2**: 提供了更强大的验证...

    struts2标签库学习

    Struts2的每个标签都支持动态数据访问,其属性可以接受OGNL表达式。属性分为字符串类型和非字符串类型。对于字符串类型,如`s:include`的`value`属性,如果包含`%{…}`,Struts2会解析这个表达式并执行。如果属性值...

    struts2学习 源码

    6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action和视图之间传递数据。OGNL提供了一种简洁的方式来访问对象属性,甚至进行复杂的表达式计算。 7. **主题和模板**:...

    马士兵Struts2笔记2013

    Struts2提供了内置的数据验证机制,可以在Action类中定义验证规则,或者使用注解进行字段级验证。此外,Struts2也支持自定义验证逻辑和全局错误处理。 7. **Struts ValueStack(值栈)** ValueStack是Struts2的...

    Struts2和Struts1的区别,详细点,主要说说Struts2

    - **Struts2**使用OGNL表达式来进行类型转换,提供了一套更为统一且强大的转换机制,大大简化了开发者的工作量。 #### 验证机制 - **Struts1**支持ActionForm的验证机制,通过Validator框架进行校验,但其实现相对...

Global site tag (gtag.js) - Google Analytics