在jsp页面中调用java方法时,它显示servlet.service异常nosuchmethod
我正在jsp页面中调用java方法,该页面显示servlet.service异常nosuch方法异常或类在jsp页面中调用java方法时,它显示servlet.service异常nosuchmethod,java,jsp,Java,Jsp,我正在jsp页面中调用java方法,该页面显示servlet.service异常nosuch方法异常或类 <%@page import="java.util.ArrayList"%> <%@page import="Model.Validation"%> <% String username=request.getParameter("uname"); String password=request.getParameter("password"); System.
<%@page import="java.util.ArrayList"%>
<%@page import="Model.Validation"%>
<%
String username=request.getParameter("uname");
String password=request.getParameter("password");
System.out.print(username+"\nhellloo\n"+password+"\n re\n");
ArrayList<String> names=Validation.validateuname(username,password);
String name=(String)names.get(0);
String role=(String)names.get(1);
if(role.equals("Administrator"))
{
out.print("{success:true,errors:{reason:'Administrator'},uname:{name:'"+name+"'}}");
}else if(role.equals("User"))
{
out.print("{success:true,errors:{reason:'User'}}");
}else
{
out.print("{success:false,errors:{reason:'User name or Password is wrong, please try again'}}");
}
%>
严重:Servlet jsp的Servlet.service()引发异常
java.lang.NoSuchMethodError:Model.Validation.ValidateName(Ljava/lang/String;Ljava/lang/String;)Ljava/util/ArrayList;
在org.apache.jsp.check\u 005flogin\u jsp.\u jsp服务(check\u 005flogin\u jsp.java:61)
位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
位于org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
位于org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
位于org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
位于org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
位于java.lang.Thread.run(未知源)
StackTrace告诉您没有方法
public class Validation {
public static ArrayList<String> validateuname(String, String) {
ArrayList<String> ls = new ArrayList<String>();
//a nice implementation goes here!
return ls;
}
}
公共类验证{
公共静态ArrayList validateuname(字符串,字符串){
ArrayList ls=新的ArrayList();
//这里有一个很好的实现!
返回ls;
}
}
检查此方法是否有效。如果方法正确,则重新编译代码并再次部署web应用程序
代码中存在一个主要问题,不能使用scriptlet(JSP中
中的Java代码)。关于这方面的问题和解决方案,有进一步的解释:
ArrayList<String> names=Validation.validateuname(username,password);
ArrayList name=Validation.validateName(用户名、密码);
验证是引用吗?如果它是对对象的引用,请检查该类中的validatename()方法。从您的代码中,我可以说它不是您试图用类名调用ValueDateName()的引用。
试试这个:
ArrayList<String> names=new Validation().validateuname(username,password);
ArrayList name=new Validation().validateName(用户名、密码);
validateName
我已经声明了这个方法,如果我运行java,它就可以工作了class@YarramReddy发布您的
验证#validateName
方法以检查任何错误。@YarramReddy您可以发布您的模型类。