相关疑难解决方法(0)

如何避免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万
查看次数

Java错误:只能导入类型.XYZ解析为一个包

我收到错误:"只能导入一个类型.XYZ会解析为一个包."

有人在这里解释了原因,但我不确定我应该做些什么来解决这个问题.仅供参考:我正在使用Eclipse.我添加了下面导入的代码.java.util.*import工作正常.

 <%@ page import="java.util.*"%>
 <%@ page import="org.eresearch.knowledgeportal.model.Category"%>
 <%@ page import="org.eresearch.knowledgeportal.dao.CategoryDao"%>

 <% 
  CategoryDao catDao = new CategoryDao();
  ArrayList<Category> catList = catDao.selectCategory();

 //
 %>
Run Code Online (Sandbox Code Playgroud)

编辑:实际错误如下:

 org.apache.jasper.JasperException: Unable to compile class for JSP: 

 An error occurred at line: 7 in the generated java file
 Only a type can be imported. org.eresearch.knowledgeportal.model.Category resolves to a package
Run Code Online (Sandbox Code Playgroud)

java jsp tomcat classpath

74
推荐指数
3
解决办法
16万
查看次数

JSTL sql:查询变量

我在JSP文件中编写了以下代码:

<c:catch var="e">
    <%
        int accountNumber = Integer.parseInt(request.getParameter("accountNumber"));
        int depositAmount = Integer.parseInt(request.getParameter("depositAmount"));
    %>
    <sql:query var='account' dataSource="jdbc/bank">
        select * from account where AccountNumber=<%= accountNumber %>      
    </sql:query>
    <c:choose>
        <c:when test="${account.first() == false}">
            <p>Account not found</p>
        </c:when>
        <c:otherwise>
            <h3>Deposit Made</h3>
            <p>Account number: <%= accountNumber %></p>
            <p>Deposit amount: <%= depositAmount %></p>
            <p>New balance: </p>
        </c:otherwise>
    </c:choose>
</c:catch>


<c:if test="${e != null}">
    error
</c:if>
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是以下代码抛出一个javax.el.MethodNotFoundException:无法找到[0]参数异常的方法[first]:

<c:when test="${account.first() == false}">
  <p>Account not found</p>
</c:when>
Run Code Online (Sandbox Code Playgroud)

我需要访问sql:query中的帐户变量,以便检查第一行是否存在.

java jsp jstl

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

如何让JSP在JSP中的<%@ include%>指令内进行语法检查?

当我在JSP中使用<%@ include%>指令时,有没有办法让Eclipse语法检查我的包含文件(或者最佳实践是什么).我的意思是,如果我包含在父项中声明变量的文件,我会得到一堆关于未声明变量的错误(有意义).

那么人们如何解决这个问题呢?

java eclipse jsp

6
推荐指数
1
解决办法
2937
查看次数

如何在JSP中获取有关NullPointerException的详细信息?

我在jsp中得到一个空指针异常,我想找出哪个行有null变量,所以我可以修复它.有没有简单的方法来做到这一点?printStackTrace似乎没有给我任何相关信息.

堆栈跟踪:

java.lang.NullPointerException 
    at org.apache.jsp.data.index2_jsp._jspService(index2_jsp.java:176) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
    at sun.reflect.GeneratedMethodAccessor103.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Method.java:616) 
    at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:244) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAsPrivileged(Subject.java:537) 
    at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:276) 
    at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:262) 
    at org.apache.catalina.core.ApplicationFilterChain.access$0(ApplicationFilterChain.java:192) 
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:171) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:167) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) 
    at org.apache.catalina.co
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
    at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:420)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) 
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) 
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) 
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) 
    at java.lang.Thread.run(Thread.java:636) 
Run Code Online (Sandbox Code Playgroud)

java jsp nullpointerexception

5
推荐指数
1
解决办法
8347
查看次数

JSP代码中的括号

我有一个我正在处理的JSP页面,我对一些格式化/编码感到困惑.

有些部分很明显发生了什么:

<%
        if (.....)
        {
%>
      <input type=hidden name="blahblah" value="moreblah">
<%
        }
%>
Run Code Online (Sandbox Code Playgroud)

但现在我看到的部分我不知道它是如何工作/编译的:

<%
    {
        // do stuff here
        String sClass = "blahblah"
        if ( sClass.equals("") )
        {
            sClass = "blah";
        }
    }
%>
Run Code Online (Sandbox Code Playgroud)

在那些花括号的开头没有if或while或for或者任何东西.为什么要编译并生成一个好的jsp页面?

java jsp

3
推荐指数
1
解决办法
2914
查看次数

Apache commons - > File Upload - > parseRequest()错误

Apache在尝试上传文件时返回此错误(我只保留了堆栈跟踪的第一行和根本原因):

HTTP Status 500 - 
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Exception in JSP: /upload.jsp:40

    37:      
    38:        try {
    39: 
    40:            items = upload.parseRequest(request);
    41:        } catch (FileUploadException e) {
    42:            out.println(e);
    43:        }

Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

root cause

javax.servlet.ServletException: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;

root cause

java.lang.NoSuchMethodError: org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(Lorg/apache/commons/fileupload/RequestContext;)Ljava/util/List;
    org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

if(ServletFileUpload.isMultipartContent(request)){
 FileItemFactory factory = new DiskFileItemFactory();
   ServletFileUpload upload = new ServletFileUpload(factory);
   List items = null;


   try {

       items …
Run Code Online (Sandbox Code Playgroud)

upload jsp apache-commons

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

jsp的范围:useBean

针对home.jsp

<jsp:useBean id="username" class="java.lang.String" scope="application"/>

<%
      username="Jitendra";
%>

<jsp:include page="include.jsp"/>
Run Code Online (Sandbox Code Playgroud)

include.jsp

<%=username%>
Run Code Online (Sandbox Code Playgroud)

这给出了一个错误,即在include.jsp中未定义"username",即使Bean的范围是应用程序...

java jsp jsp-tags jspinclude java-ee-6

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