我有一个网址,例如search.do?offset=20
偏移量有时在URL中,有时不在。当它不在URL中时,我希望它为0。
我尝试通过scriptlet检索值,但没有成功,如下所示:
<% Integer offset = (pageContext.findAttribute("offset")==null) ? new Integer("0") : new Integer((String) pageContext.findAttribute("offset")); %>
Run Code Online (Sandbox Code Playgroud)
有人知道我在做什么错吗?
首次在JSP中编码,我需要将变量的值呈现给HTML.看起来有很多方法可以做到这一点; 这些之间的区别是什么(假设我有一个变量命名foo)?
<%= foo %>
Run Code Online (Sandbox Code Playgroud)
和
${ foo }
Run Code Online (Sandbox Code Playgroud) <%
String a="abc";
Srting b="xyz";
String c=a+"\n"+b;
%>
Run Code Online (Sandbox Code Playgroud)
我想String c在HTML表中显示如下:
<table>
<tr>
<td><%= c %></td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我想得到这个:
--------
| abc |
| xyz |
--------
Run Code Online (Sandbox Code Playgroud)
但我明白了:
------------
| abc xyz |
------------
Run Code Online (Sandbox Code Playgroud)
有没有什么我可以用scriplet来实现这个?
在网络上,我见过两个例子
<% if @showIt -%>
some html content
<% end -%>
Run Code Online (Sandbox Code Playgroud)
没有
<% if @showIt %>
some html content
<% end %>
Run Code Online (Sandbox Code Playgroud)
短跑.两个版本都运行良好.那么,它有什么不同呢?
谢谢!
我正在开发一个POC,我需要创建一个与JSP相当的freemarker ftl.目的是找出创建jsp等效ftl文件是多么容易.我在jsp文件中遇到了一些scriptlet,并且不确定在ftl中的代码中应该采用哪种方法来编写相同的脚本.我应该创建支持scriptlet代码的标签..但是为每个scriptlet编写标签会过于昂贵(可能我在这里完全错了).我被困在这里.你能告诉我在sriptlet中编写相同代码的最佳方法吗?
谢谢,Hanumant.
我是一个使用JSP的初学者.我想使用最大范围的用户选择显示递增整数的列表.
输入:6应显示以下内容:
的Input.jsp
<body>
<input type="number" name="numberMax" required>
<input type="submit" value="submit">
</body>
Run Code Online (Sandbox Code Playgroud)
jspResult.jsp
<body>
<%
int numberMax = request.getParameter("numberMax"); // Cannot convert from String to int
%>
for (int i = 1; i <= numberMax; i++)
{ %>
<ul>
<li><%= i %></li>
</ul>
<% } %>
</body>
Run Code Online (Sandbox Code Playgroud)
如何将输入转换为整数以便打印jsp scriptlet.
我正在使用 JSTL 从数据库中显示我的数据,其中记录还包含一些特殊字符。当我使用 JSTL 显示我的记录时,如下所示:
<c:out value="${record.fname}" escapeXml="false" />
Run Code Online (Sandbox Code Playgroud)
然后我必须包含escapeXml="false"在我的代码中,以便在我的浏览器窗口中显示特殊字符。但是当我删除它时,它只显示我的 HTML 代码。但是当我使用 scriptlet 显示我的记录时:
<%= record.getFname() %>
Run Code Online (Sandbox Code Playgroud)
它仅自动显示特殊字符,而不显示相应的 HTML 代码。
我想提一下我已经完成了我的工作,但只是有点困惑哪个更好。
我正在写一个简单的注册申请.有一个register.jsp(允许用户输入他们的信息),一个JAVABean和一个welcome.jsp(打印出用户信息).
在welcome.jsp中.我想在我的代码中添加if..else.. 如果用户在register.jsp中检查同意TOS选项,则打印出他们的信息.此外,还有一个警告,他们必须同意服务条款.
当我写if..else时我有问题......简单地说,我尝试使用:
<% if (<%= User.getTos()%> != null) {
%> Print Information <%
} else {
%> A Warning <%
} %>
Run Code Online (Sandbox Code Playgroud)
但这个如果...... else..has语法错误.我不知道如何解决它.我应该如何正确编写if语句?**
这是register.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Register</title>
</head>
<body>
<h1>Register</h1>
<form action="welcome.jsp" method="POST">
<table>
<tr><td>Email</td><td><input type="text" name="email"></td></tr>
<tr><td>Full name</td><td><input type="text" name="name"></td></tr>
<tr><td>Password</td><td><input type="password" name="password"></td></tr>
<tr><td>Gender</td><td><input type="radio" name="gender" value="male">Male<br><input type="radio" name="gender" value="female">Female</td></tr>
<tr><td>Favourite colour</td><td><select name="favcol"> <option>red<option>green</select></td></tr>
<tr><td>Agree to TOS</td><td><input type="checkbox" …Run Code Online (Sandbox Code Playgroud) 我有这段代码片段::
<script type="text/javascript">
function gotoa(){
<%!
public void a(){
String temp1;
PopulateTextbox obj = new PopulateTextbox();
temp1 = obj.method();
request.setAttribute("variable", temp1);
}
%>
var myVar = <%=request.getAttribute("variable")%>
}
</script>
Run Code Online (Sandbox Code Playgroud)
我想要做的是在我的JavaScript函数gotoa()中获取变量temp1的值.在此特定代码中,我收到错误无效请求
request.setAttribute("variable", temp1);
Run Code Online (Sandbox Code Playgroud)
我的主要目的是在某个按钮单击事件上调用函数a(),以便我的脚本让代码再次运行,并在变量temp1中传递新值.然后将传递给gotoa()作为我的数据网格的源(不在此代码中).基本上我想刷一些按钮点击网格.我做得对吗?请帮忙.谢谢.
我试图弄清楚如何使用JSTL使用会话,因此,我首先尝试在Jsp中设置会话属性,然后将该属性传递给同一应用程序中的另一个Jsp,然后在其中进行检索。
我设置了属性并使用调度程序来到达另一个servlet,在另一种尝试中,我使用了sendRedirect将请求转发到另一个servlet。
这是第一个Jsp(我在其中设置属性):
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:set var="session" scope="session" value="test"></c:set>
<%
response.sendRedirect("session.jsp"); // I know I could use the JSTL tag forward
%>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
在另一个Jsp(“ session.jsp”)中:
<%
HttpSession s = request.getSession();
if(s.isNew())
out.print("new session " );
out.print(s.getAttribute("session"));
%>
Run Code Online (Sandbox Code Playgroud)
当我使用sendRedirect时,结果为"test",这意味着该会话不是新创建的。但是,当我使用forward(dispatcher)时,结果为"new session test"。
我不知道发生这种行为的原因,但是如果结果相反,这是有道理的。
scriptlet ×10
jsp ×7
html ×4
java ×3
jstl ×2
datagrid ×1
el ×1
freemarker ×1
if-statement ×1
java-ee ×1
javascript ×1
ruby ×1
servlets ×1