在jsp和java之间重用变量名(Spring) [英] Reusing variable names between jsp and java (Spring)

查看:83
本文介绍了在jsp和java之间重用变量名(Spring)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我现有的jsp是

 < c:forEach var =domainOrGroupParentDetails
items =$ { allDomainOrGroupParentDetails}varStatus =status>
< option
value =$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}>
$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}< / option>
< / c:forEach>

我现有的Spring Java是

<$ p $ (allDomainOrGroupParentDetails,
getDomainOrGroupParentResponse.getDomainOrGroupParentPojoWrappers());

From ,我试着做下面的事情:

  public class ModelObjectKeys {
public static class OnLoadAddDriverConstants {
$ b}
public static final String allDomainOrGroupParentDetails =allDomainOrGroupParentDetails;
}

而在jsp中,我做了

 < c:forEach var =domainOrGroupParentDetails
items =$ {<%= ModelObjectKeys.allDomainOrGroupParentDetails%>}varStatus =status >
< option
value =$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}>
$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}< / option>
< / c:forEach>

我也像这样在html中导入了java文件

 <%@ page import =com.mnox.corporate.model.design.ModelObjectKeys%> 
<!DOCTYPE html PUBLIC - // W3C // DTD HTML 4.01 Transitional // ENhttp://www.w3.org/TR/html4/loose.dtd\">
< html>
< head>

仍然不起作用。我得到


org.apache.jasper.JasperException:
/WEB-INF/views/onLoadAddDriverView.jsp(行:270 ,列:10)
$ {<%= ModelObjectKeys.allDomainOrGroupParentDetails%>}包含
无效表达式


我缺少什么?

编辑

  2017年6月19日7:28:11 org.apache.catalina.core.StandardWrapperValve invoke 
SEVERE:servlet [appServlet]在上下文中使用Servlet.service() BuseetaCorporate]引发异常[在271行处理JSP页面/WEB-INF/views/onLoadAddDriverView.jsp发生异常

268:< c:forEach var =domainOrGroupParentDetails
269: items =$ {ModelObjectKeys.allDomainOrGroupParentDetails}varStatus =status>
270:< option
271:value =$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}>
272:$ {domainOrGroupParentDetails.domainOrGroupParentPojo.name}< / option>
273:< / c:forEach>
274:< / select>
Stacktrace:]有根本原因
javax.el.PropertyNotFoundException:在类型java.lang.String中找不到属性'domainOrGroupParentPojo'在javax.el.BeanELResolver中找到
$ BeanProperties.get(BeanELResolver。 java:268)


解决方案

更改 items =$ {<%= ModelObjectKeys.allDomainOrGroupParentDetails%>}
to items =$ {ModelObjectKeys.allDomainOrGroupParentDetails}

不能在EL表达式中嵌套脚本


My existing jsp is

<c:forEach var="domainOrGroupParentDetails"
    items="${allDomainOrGroupParentDetails}" varStatus="status">
    <option
        value="${domainOrGroupParentDetails.domainOrGroupParentPojo.name}">
        ${domainOrGroupParentDetails.domainOrGroupParentPojo.name}</option>
</c:forEach>

My existing Spring Java is

data.put("allDomainOrGroupParentDetails",
    getDomainOrGroupParentResponse.getDomainOrGroupParentPojoWrappers());

From this, I tried to do the following

public class ModelObjectKeys {
    public static class OnLoadAddDriverConstants {

    }
    public static final String allDomainOrGroupParentDetails = "allDomainOrGroupParentDetails";
}

And in the jsp I did

<c:forEach var="domainOrGroupParentDetails"
    items="${<%=ModelObjectKeys.allDomainOrGroupParentDetails%>}" varStatus="status">
    <option
        value="${domainOrGroupParentDetails.domainOrGroupParentPojo.name}">
        ${domainOrGroupParentDetails.domainOrGroupParentPojo.name}</option>
</c:forEach>

I also imported the java file in the html like this

<%@ page import="com.mnox.corporate.model.design.ModelObjectKeys"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

Still it does not work. I get

org.apache.jasper.JasperException: /WEB-INF/views/onLoadAddDriverView.jsp (line: 270, column: 10) "${<%=ModelObjectKeys.allDomainOrGroupParentDetails%>}" contains invalid expression(s)

What am I missing ?

EDIT

Jun 19, 2017 7:28:11 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/BuseetaCorporate] threw exception [An exception occurred processing JSP page /WEB-INF/views/onLoadAddDriverView.jsp at line 271

268:                                        <c:forEach var="domainOrGroupParentDetails"
269:                                            items="${ModelObjectKeys.allDomainOrGroupParentDetails}" varStatus="status">
270:                                            <option
271:                                                value="${domainOrGroupParentDetails.domainOrGroupParentPojo.name}">
272:                                                ${domainOrGroupParentDetails.domainOrGroupParentPojo.name}</option>
273:                                        </c:forEach>
274:                                    </select>
Stacktrace:] with root cause
javax.el.PropertyNotFoundException: Property 'domainOrGroupParentPojo' not found on type java.lang.String
    at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:268)

解决方案

Change items="${<%=ModelObjectKeys.allDomainOrGroupParentDetails%>}" to items="${ModelObjectKeys.allDomainOrGroupParentDetails}"

You can't nest scripting inside EL expression

这篇关于在jsp和java之间重用变量名(Spring)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆