我有一个这样的Enum
package com.example;
public enum CoverageEnum {
COUNTRY,
REGIONAL,
COUNTY
}
Run Code Online (Sandbox Code Playgroud)
我想在JSP中迭代这些常量而不使用scriptlet代码.我知道我可以用这样的scriptlet代码做到这一点:
<c:forEach var="type" items="<%= com.example.CoverageEnum.values() %>">
${type}
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
但是如果没有scriptlet,我能实现同样的目标吗?
干杯,唐
我有一个使用标签模板的页面.我的web.xml非常基础.
我只想在页面中运行一些代码.
不,我对标签或其他替代品不感兴趣.我想使用坏练习scriptlet哈哈.
到目前为止,我收到此"HTTP ERROR 500"错误:
Scripting elements ( %!, jsp:declaration, %=, jsp:expression, %, jsp:scriptlet ) are disallowed here.
Run Code Online (Sandbox Code Playgroud)
虽然我的文件看起来像:
/WEB-INF/web.xml
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)
/WEB-INF/tags/wrapper.tag
<%@tag description="Simple Wrapper Tag" pageEncoding="UTF-8"%>
<%@ attribute name="title" required="true" type="java.lang.String"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>${title}</title>
</head>
<body>
<jsp:doBody />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
的index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags"%>
<t:wrapper>
<jsp:attribute name="title">My nice title</jsp:attribute>
<jsp:body>
<h1><%="some code generated …Run Code Online (Sandbox Code Playgroud) 我想知道在<c:if>语句中是否还有使用JSP .
例如
<c:if test="${ param.variable1 == 'Add' <% JSP variable clause %>}">
Run Code Online (Sandbox Code Playgroud)
所以我也想要检查我的JSP变量.
有什么建议?我已经无知地试着坚持条款,显然它没有用.
谢谢
我正在使用以下代码在浏览器上打印用户名:
<body>
<form>
<h1>Hello! I'm duke! What's you name?</h1>
<input type="text" name="user"><br><br>
<input type="submit" value="submit">
<input type="reset">
</form>
<%String user=request.getParameter("user"); %>
<%if(user == null || user.length() == 0){
out.print("I see! You don't have a name.. well.. Hello no name");
}
else {%>
<%@ include file="response.jsp" %>
<% } %>
</body>
Run Code Online (Sandbox Code Playgroud)
的response.jsp:
<body>
<h1>Hello</h1>
<%= request.getParameter("user") %>
body>
Run Code Online (Sandbox Code Playgroud)
每次我执行它,消息
我知道了!你没有名字..好吧..你好,没有名字
即使我没有在文本框中输入任何内容,也会显示.但是,如果我在其中输入任何内容,则会显示response.jsp代码,但我不希望在执行时显示第一条消息.我该如何做到这一点?请修改我的代码.
PS我在一些问题中已经读过,而不是检查与null的相等性,必须检查它是否为等于,以便它不会抛出空指针异常.当我尝试同样的,即if(user != null && ..),我得到了NullPointerException.
在JSP中是否有可能获得List中的Object类型,就像我们在Java中一样
myDataBind.getResultsList().get(0).getClass();
Run Code Online (Sandbox Code Playgroud)
或者是否有可能实现这样的目标:
if ( myDataBind.getResultsList().get(0) instanceOf MyClass ) {
doThis;
}
Run Code Online (Sandbox Code Playgroud)
我不喜欢scriptlet,但如果没有scriptlet就不可能,那么请告诉我即使是这个解决方案.
我知道最好在JSPS中使用jstl,但我已明确告诉我在这个项目中使用scriptlet.我的问题是我的servlet将一个Arraylist项附加到请求对象,我想使用scriptlet循环遍历该项.
示例:我的servlet将其附加并将其转发到jsp
request.setAttribute("list", Content); where Content is Arraylist<String>
Run Code Online (Sandbox Code Playgroud)
jsp将检索此对象并将其打印在我尝试的页面上:
<%
ArrayList<String> cont = (ArrayList)request.getAttribute("Content");
for (int i=0;i<cont.size();i++)
{
out.println(cont.get(i));
}
%>
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /EnrolledSuccess.jsp at line 35
32: ArrayList<String> cont = (ArrayList)request.getAttribute("cont");
33: for (int i=0;i<=cont.size();i++)
34: {
35: out.println(cont.get(i));
36:
37: }
38: %>
Run Code Online (Sandbox Code Playgroud) 虽然有工作JSP文件和servlet,我碰到 <% … %>和<%= … %>.
这两种情况有什么区别?
谢谢
我知道现在使用scriptlet被认为是禁忌.没关系,我同意Top Star的话(因为我现在只是Java的新手).
到目前为止我所听到的是,它使设计师的生活更轻松.但我想知道,如果它与JSP页面的性能有任何关系.另一方面,如果它只是为了"让设计师的生活更轻松",那么在Java开发人员同时完成这项工作的情况下,你们怎么看待使用scriptlet呢?
如果现在各个方面的scriptlet都不好,你有什么建议?EL?JSTL?
谢谢
如何在调用函数时使用in 来在控制台(如System.out.println()in java)中打印值?如果我在值中使用的是在表单加载时打印但我希望它只在调用java脚本时打印.scripletjavascriptSystem.out.println("test")scripletjsp
我正在研究rpm scriptlets中的一个错误,这可能源于我们在安装/删除/升级软件包期间执行scriptlet的顺序.我们在Redhat Enterprise上使用yum.
显然我首先需要很好地理解rpm scriptlet的顺序 - 有趣的是,我没有在任何地方找到一个很好的总结.
根据我收集的内容,这是用于升级的scriptlet :
%pretrans 新包装%pre 新包装 prein%post 新包装 postin%preun 旧包装%postun 旧包装%posttrans 新包装但是,它没有列出用于安装以前不在系统上的新软件包的scriptlet排序(即不是升级)和删除一个?从上面的排序中我可以猜出这些排序可能看起来如何,但我也希望得到一些有关这方面的教育意见......