我不知道我做错了什么,但我不能包括JSTL.我有jstl-1.2.jar,但不幸的是我得到了例外:
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
at org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:315)
at org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:148)
at org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:429)
at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:492)
at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1439)
at org.apache.jasper.compiler.Parser.parse(Parser.java:137)
at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:255)
at org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:170)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:299)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) …Run Code Online (Sandbox Code Playgroud) 我是JSP的新手.我尝试连接MySQL和我的JSP页面,它工作正常.但这是我需要做的.我有一个名为"balance"的表属性.检索它并使用它来计算一个名为"amount"的新值.(我不打印"余额").
<c:forEach var="row" items="${rs.rows}">
ID: ${row.id}<br/>
Passwd: ${row.passwd}<br/>
Amount: <%=Calculate.getAmount(${row.balance})%>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
似乎无法在JSTL标记中插入scriptlet.
如果我有一个这样的匿名内部类对象(其中Foo是一个接口):
Foo foo = new Foo(){
@Override
public String hello(Object dummyArg){
return "hello, world.";
}
};
Run Code Online (Sandbox Code Playgroud)
我尝试Foo.hello从这样的jsp 调用:
${foo.hello('blah')}
Run Code Online (Sandbox Code Playgroud)
它抛出:
javax.el.MethodNotFoundException: Unable to find method [hello] with [1] parameters
Run Code Online (Sandbox Code Playgroud)
但如果没有参数:
Bar bar = new bar(){
@Override
public String hello(){
return "hello, world.";
}
};
Run Code Online (Sandbox Code Playgroud)
...
${bar.hello()}
Run Code Online (Sandbox Code Playgroud)
它工作正常.为什么?
这不是7121303的副本.我正在特别询问匿名的内部课程.使用常规类的实例,它可以使用任意数量的参数.
我正在开发一个Spring应用程序,在JSPX页面中,我需要从属性页面动态加载一些值,并使用options标签将它们设置为下拉列表.我需要使用相同的文本作为选项值和显示但是对于选项值,我需要删除所有特殊字符.
例如,如果价值是母亲叔叔,那么我需要
<option value="MaternalUncle">Maternal Uncle</option>
Run Code Online (Sandbox Code Playgroud)
我得到的是
<option value="Maternal Uncle">Maternal Uncle</option>
Run Code Online (Sandbox Code Playgroud)
有2个应用程序可以使用该页面,并且要加载的属性文件取决于应用程序.如果我为app 1加载值,那么值会正确显示,app1中的最后一个值是'Others',并且没有任何特殊字符.对于app 2,它不会修剪最后一个值为'Maternal Uncle'的空格.代码中的repOptions是ArrayList,其值从属性文件加载.这是我的代码:
<select name="person" id="person">
<option value="na">Select the relationship</option>
<c:forEach items="${repOptions}" var="repOption">
<option value="${fn:replace(repOption, '[^A-Za-z]','')}">${repOption}</option>
</c:forEach>
</select>
Run Code Online (Sandbox Code Playgroud)
第一个应用程序删除空格,因为此值在列表9中为第4个.对于app2,这是最后一个值,正则表达式不起作用.如果我把Maternal Uncle作为app2的第一个属性,那么这个工作正常,但要求是最后一个选项.
<option value="${fn:replace(repOption, ' ','')}">
Run Code Online (Sandbox Code Playgroud)
正在为空白工作,但可能有像兄弟/姐妹这样的值,所以我需要删除/也,因此我正在使用正则表达式.
这可能是重复的问题。
我只想调用不是 getter 或 setter 方法的方法,例如。makeCall(someObj,"stringvalue") 的 xyz 类。
Java类
Class XYZ{
public String makeCall(Object objValue, String stringValue){
//some logic here
}
}
Run Code Online (Sandbox Code Playgroud)
JSTL
<jsp:userBean id="xyz" class="com.XYZ"/>
${xyz.makeCall("hello","Friend")}
Run Code Online (Sandbox Code Playgroud)