标签: scriptlet

如何避免JSP文件中的Java代码?

我是Java EE的新手,我知道类似以下三行

<%= x+1 %>
<%= request.getParameter("name") %>
<%! counter++; %>
Run Code Online (Sandbox Code Playgroud)

是一种旧式的编码方式,在JSP版本2中,存在一种避免JSP文件中的Java代码的方法.有人可以告诉我替代的JSP 2行,以及这种技术的名称是什么?

java jsp scriptlet

1649
推荐指数
24
解决办法
28万
查看次数

我可以将一个变量从JSP scriptlet传递到JSTL,但不能从JSTL传递到JSP scriptlet而不会出错

以下代码导致错误:

 <c:set var="test" value="test1"/>
 <%
   String resp = "abc";
   resp = resp + test;
   pageContext.setAttribute("resp", resp);
 %>
 <c:out value="${resp}"/>
Run Code Online (Sandbox Code Playgroud)

错误说

"error a line 4: unknown symbol 'test'".
Run Code Online (Sandbox Code Playgroud)

如何test从JSTL代码传递到JSP scriptlet?

java jsp scope jstl scriptlet

50
推荐指数
2
解决办法
11万
查看次数

如何避免在JSP页面中使用scriptlet?

我被告知在我的JSP页面中使用scriptlet(<%= ...%>)并不是一个好主意.

有没有更多java/jsp经验的人可以给我一些关于如何更改此代码的指示,以便更多"最佳实践",无论可能是什么?

这个JSP实际上是我的sitemesh主装饰页面.基本上我的网页设计有一个标签条和一个子菜单,我希望以某种方式突出显示当前标签,并通过查看当前请求URI显示正确的子菜单.

<%@ taglib uri="http://www.opensymphony.com/sitemesh/decorator" prefix="decorator" %>

<html>
<head>
  <title>My Events - <decorator:title /></title>
  <link href="<%= request.getContextPath() %>/assets/styles.css" rel="stylesheet" type="text/css" />
</head>
<body>

<div class="tabs">
  <a 
    <%= request.getRequestURI().contains("/events/") ? "class='selected'" : "" %>
    href='<%= request.getContextPath() %>/events/Listing.action'>Events</a>
  <a 
    <%= request.getRequestURI().contains("/people/") ? "class='selected'" : "" %>
    href='<%= request.getContextPath() %>/people/Listing.action'>People</a>
</div>

<div class="submenu">
  <% if(request.getRequestURI().contains("/events/")) { %>
    <a href="Listing.action">List of Events</a>
    |<a href="New.action">New Event</a>
  <% } %>
  <% if(request.getRequestURI().contains("/people/")) { %>
    <a href="Listing.action">List of People</a>
    |<a href="New.action">New Person</a>
  <% } %> …
Run Code Online (Sandbox Code Playgroud)

java jsp sitemesh scriptlet

33
推荐指数
4
解决办法
4万
查看次数

访问scriptlet中的jstl变量

以下代码导致错误:

       <c:set var="test" value="test1"/>
      <%
        String resp = "abc"; 
        resp = resp + ${test};  //in this line I got an  Exception.
        out.println(resp);
       %>
Run Code Online (Sandbox Code Playgroud)

我不是在scriptlet.why中使用表达式语言"$ {test}"吗?

jsp jstl el scriptlet

31
推荐指数
1
解决办法
7万
查看次数

JSP scriptlet中的方法是否合法?

我知道它不推荐,我应该使用标签库等.

但是我仍然想知道在JSP scriplet中声明方法是否合法:

<%
   public String doSomething(String param) {
      //
   }

   String test = doSomething("test");

%>
Run Code Online (Sandbox Code Playgroud)

这合法吗?我得到一些a ; is expected似乎不合适的奇怪的编译错误(如).谢谢.

java methods jsp scriptlet

30
推荐指数
2
解决办法
4万
查看次数

如何在scriptlet中使用JSTL变量?

我必须访问在迭代器中计算的JSTL变量.
代码摘录:

<c:forEach var="resultBean" items="${resultList}" varStatus="status">
   card: ${resultBean.cardNum} 
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

我想访问${resultBean.cardNum}scriptlet代码.我现在正在做的是:

<c:forEach var="resultBean" items="${resultList}" varStatus="status">
   card: ${resultBean.cardNum} 
   <c:set var="currentCardNum">${resultBean.cardNum}</c:set>
   <%out.write( StringUtils.mask( (String)pageContext.getAttribute("currentCardNum") ) );%>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

我想跳过第3行,我在pageContext中设置变量.没有设置它可以实现相同的结果吗?或者我可以使用其他方式吗?

java jsp jstl scriptlet

27
推荐指数
2
解决办法
4万
查看次数

使用JSTL或EL创建数组

我正在使用Java及其框架(Spring 3.1.1)开发Web应用程序.我试图避免尽可能多地使用scriptlet,但是我找不到除此之外的方法来定义数组:

<%
    String[] alphabet = {"A", "B", "C", ... , "Z"};
    pageContext.setAttribute("alphabet", alphabet);      
%> 
Run Code Online (Sandbox Code Playgroud)

设置pageContext属性后,我可以使用它${alphabet}.但我想知道,是否可以使用普通的JSTL/EL来创建数组?

更新:我正在使用此数组来创建链接.例如,如果用户单击"S",则会出现名字以"S"开头的员工列表.因此,我不是逐个创建链接而是迭代${alphabet}.

arrays jsp jstl el scriptlet

22
推荐指数
3
解决办法
9万
查看次数

如何在JSP中将JavaScript值传递给Scriptlet?

谁能告诉我如何在JSP中将JavaScript值传递给Scriptlet?

javascript java jsp scriptlet

19
推荐指数
2
解决办法
15万
查看次数

14
推荐指数
1
解决办法
7448
查看次数

scriptlet中的Access Model属性

我正在使用Spring MVC,在我的Controller中,我使用以下方法设置标准模型属性:

...
model.addAttribute("param", value);
...
Run Code Online (Sandbox Code Playgroud)

现在,我希望在一个scriptlet中(在JSP中)访问它.例如:

<% 
Object value = ***.get***("param"); 
... more java code...
%>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

注意:我理解使用scriptlet是一个不好的想法,但请暂时忍受它.

html jsp spring-mvc scriptlet

14
推荐指数
1
解决办法
2万
查看次数

标签 统计

jsp ×10

scriptlet ×10

java ×6

jstl ×4

el ×2

arrays ×1

html ×1

javascript ×1

methods ×1

scope ×1

sitemesh ×1

spring-mvc ×1