使用 OGNL 通过 Action 获取请求参数
2012-03-19 17:14
344 查看
OGNL:Object-Graph Navigation Language,对象图导航语言 ,可以方便地操作对象属性的开源表达式语言。
至于怎么说是表达式语言,看了书上的例子大概了解了一点。
1. OnglAction.java
2.自定义Car类
3.struts,xml
4.msg.jsp
在上面这段代码中,第16行获取值其实与第18行获取值是等价的。并且,第16行的 Car 指的应
该是类。但是测试发现,大小写并不敏感。
全部配置好之后,编译,启动服务器,输入 http://localhost:8080/onglAction.action?msg=lihui 后显示:
至于怎么说是表达式语言,看了书上的例子大概了解了一点。
1. OnglAction.java
package com.lihui; import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class OnglAction extends ActionSupport{ private Car myCar; @Override public String execute() throws Exception { //获取ActionContext 示例,以便访问 servlet API ActionContext ctx = ActionContext.getContext(); ctx.getApplication().put("msg", "application信息"); ctx.getSession().put("msg", "session信息"); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("msg", "request信息"); myCar = new Car(); myCar.setColor("Black"); myCar.setWidth("1.5cm"); ctx.getSession().put("mycar", myCar); return SUCCESS; } public Car getCar(){ return myCar; } public void setCar(Car car){ this.myCar = car; } }
2.自定义Car类
package com.lihui; public class Car { private String width; private String color; public String getColor(){ return color; } public void setColor(String color){ this.color = color; } public String getWidth(){ return width; } public void setWidth(String width){ this.width = width; } }
3.struts,xml
<?xml version="1.0" encoding="GB2312" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="com.lihui" extends="struts-default"> <action name="onglAction" class="com.lihui.OnglAction"> <result name="success">msg.jsp</result> </action> </package> </struts>
4.msg.jsp
在上面这段代码中,第16行获取值其实与第18行获取值是等价的。并且,第16行的 Car 指的应
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" contentType="text/html; utf-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>msg.jsp</title> </head> <body> <p>parameters:<s:property value="#parameters.msg"/></p> <p>request.msg:<s:property value="#request.msg"/></p> <p>session.msg:<s:property value="#session.msg"/></p> <p>application.msg:<s:property value="#application.msg"/></p> <p>attr.msg:<s:property value="#attr.msg"/></p> <s:property value="Car.{?#this.color=='Black'}.{width}[0]"/><br/> 汽车的颜色:<s:property value="#session.mycar.color"/> <p>汽车的Width为:<s:property value="#session.mycar.width"/></p> <!-- 下面创建一个新集合 --> <s:set name="student" value="#{'Jack':'21','Rose':'22'}"></s:set> <p>学生Jack的年龄为:<s:property value="#student['Jack']"/></p> </body> </html>
该是类。但是测试发现,大小写并不敏感。
全部配置好之后,编译,启动服务器,输入 http://localhost:8080/onglAction.action?msg=lihui 后显示:
相关文章推荐
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- SpringMVC中使用Ajax POST请求以json格式传递参数服务端通过request.getParameter("name")无法获取参数值问题分析
- jsp页面,使用Struts2标签,传递和获取Action类里的参数,注意事项。<s:a action><s:iterator><s:param>ognl表达式 在编写SSH2项目的时候,除
- request使用getReader()和getInputStream()获取请求参数报400错误
- .Action中获取Web对象的方式和OGNL表达式的使用
- Action获取请求参数方法
- 通过javascript,使用struts2的ognl获取JavaBean的属性.
- Retrofit简单封装使用--Post请求封装请求体、Get请求通过参数、map方式构建url
- 使用@RequestMapping 定义处理器函数-通过@RequestParam元注解来将请求参数绑定到方法形参
- struts2——文件的下载以及在Action中获取请求参数的方式
- spring mvc 通过bean获取form的参数和并且进行服务器验证 ,而且支持多个文件上传的用法。html使用form_data
- jsp或Action获取请求参数中文乱码
- SSH:Struts2的Action中获取GET请求参数中文乱码问题
- (不推荐使用)springMVC基本配置+继承MultiActionController来实现根据参数名指定要请求的方法
- .Net Mvc ActionFilterAttribute的OnActionExecuted中获取请求参数信息
- js获取src请求 得到一个参数和多个参数写法(这是集中网上的多个方法,自己cv过去就可以使用)
- 获取HttpActionContext请求参数
- 在Python3.0中使用HTTPServer处理web请求2-获取请求参数
- 【坑】使用拦截器跳转Action无法获取到传递过来的参数
- jQuery之异步Ajax请求使用 通过传递参数来调用后台方法返回状态