本文目录一览:
1、如何在java代码中调用EL表达式 2、java中的el表达式 3、java语句转换为JSTL与EL表达式 4、java中EL表达式怎么用 5、在jsp的java代码中怎么引入el表达式 6、[java el表达式问题](#java el表达式问题)
如何在java代码中调用EL表达式
jsp内置对象常用的有request,response,可以在jsp中用jstl定义变量,变量的范围定义为request或response,然后在servlet中从request或response中取值
java中的el表达式
是调用的getUsername。 你的username属性是private,别的类无法直接访问属性。只能通过方法。struts2通过反射,根据属性名称找到相应的getXXX方法,调用就得到了相应的值
java语句转换为JSTL与EL表达式
尝试了下:
由于jstl不能调用方法,因为你的是setMaxAge(0);如果知道有什么name的cookie的话可尝试用c:set value=0来代替(forEach是不行的),但是
response.addCookie(cookies[i]);不能用jstl表示出来
<c:if test="${sessionScope.account!=null}">
<c:remove var="account" scope="session"/>
</c:if>
<c:set target="${cookie.a}" property="maxAge" value="0" />
<c:set target="${cookie.b}" property="maxAge" value="0" />
<c:set target="${cookie.c}" property="maxAge" value="0" />
<%-- ...... --%>
<%
Cookie[] cookies=request.getCookies();
if(cookies!=null) {
for(int i=0;i<cookies.length;i++){
response.addCookie(cookies[i]);
}
}
%>
<c:redirect url="SignOnForm.jsp"/>
答案:用jstl是实现不了的。。
像这样的代码不能写在controller吗?不要在jsp写这样的代码
如果实在不想写在controller里。。。1.可以选择用 jstl+jsp:userbean标签实现,自己写一个自定义的javabean,来传Request和response进去,在setpropery的时候完成你上述代码操作。
2。可以用js cookie做。
java中EL表达式怎么用
java 中jsp中的EL用法如下: 1.获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组) 2.执行运算: 利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null} 4.获取web开发常用对象 EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。 5.调用Java方法 EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。 使用EL表达式获取数据语法:“${标识符}”EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、requestsession、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。 示例:${user}
在jsp的java代码中怎么引入el表达式
用${},1,访问Bean属性如:${user.uname}等价于<% User user=(User)request.getAttribute("user");out.print(user.getUname());%> 2,获取请求参数,如: ${param.username}等价于request.getParamter("username"); EL表达式是配合JSTL使用的。你需要引入的是JSTL标签库 <%@taglib uri=" jsp标签的命名空间 " prefix="c"%>
java el表达式问题
第一步骤:问题总结:
el表达式默认获取的是java实体对象和map,list等集合中的数据,
如map 通过键名获取value ${key}
list 则通过循环类似for一样展示
<c:forEach items="${dataListMap}" var="item">
<li>
<div>${item.id}</div>
<div>${item.content}</div>
</li>
${item.content} 现在获取的是一个json字符串 一个办法是通过截取获得(实现问题过多,不灵活不推荐),一个是在后台利用json操作将其转为map或者对应的实体类(参考第一点)。
第一种:json格式数据的传递(一般使用ajax)。
如果你想要
1、操作json数据格式第一种可以参考:
网页链接
import com.alibaba.fastjson.JSON;
public static void main(String[] args) {
//创建一个对象并将 给对象赋值
Student st = new Student();
st.setId(1);
st.setName("张三");
st.setSex("男");
//使用fastjson转化为json字符串
String studentJson = JSON.toJSONString(st);
System.out.println(studentJson);
//将json字符串转为实体对象
Student changeStudent = JSON.parseObject(studentJson,Student.class);
System.out.println(changeStudent.getName())
}
2、操作json数据格式第二种可以参考:
网页链接
import java.util.List;
4.2 关键代码:
public static void testList(){
//将集合对象转为json对象,json字符串
List<Student> list= new ArrayList<Student>();
Student st = new Student();
st.setId(1);
st.setName("张三");
st.setSex("男");
Student st2 = new Student();
st2.setId(2);
st2.setName("小丽");
st2.setSex("女");
list.add(st);
list.add(st2);
//将类转为json对象
JSONArray array=JSONArray.fromObject(list);
System.out.println(array.toString());
//将json对象转为对应的集合类
JSONArray arrayBean = JSONArray.fromObject(array.toString());
List<Student> listBean = (List<Student>) JSONArray.toCollection(arrayBean,Student.class);
//输出转换后的结果
for (Student lst: listBean) {
System.out.println("name:"+lst.getName());
}
}
3、使用ajax调用接收后台数据:
3.1 使用jquery的ajax 和servlet 网页链接
3.2 使用原生js实现异步调用获取servlet数据:网页链接
第二种:将json对象转为实体类(转换方式参考第一种),并将实体类放入request或者session作用域中。
前端jsp页面引入cjstl表达式:
<%@ taglib uri="" prefix="c" %>
将数据放入request作用域中: