我看到一些Java示例使用this
关键字来获取超类方法.示例:this.superClassMethod()
.通常情况下我们会使用super
.有人可以帮助澄清为什么开发人员使用this
而不是super
?谢谢.
当我<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
用于我的struts 1.3.10项目时,它抛出以下异常:
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:445)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:152)
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
org.apache.jasper.compiler.Parser.parseElements(Parser.java:1427)
org.apache.jasper.compiler.Parser.parse(Parser.java:138)
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1083)
org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:295)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:396)
org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:347)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:232)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
Run Code Online (Sandbox Code Playgroud)
然后,当我改变它
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
Run Code Online (Sandbox Code Playgroud)
它工作正常.我想知道这两者之间的区别是什么,以及当我尝试使用它时抛出异常的原因<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
.顺便说一句,我使用的是服务器apache-tomcat-7.0.42.请帮我.
我试图设置主复制服务器。当我在 my.cnf 中添加 log-bin 目录后尝试启动/重新启动服务器时,
log-bin = /var/log/mysql/mysql-bin.log
Run Code Online (Sandbox Code Playgroud)
服务器没有启动。
MySQL 状态
mysqld.service - MySQL 服务器已加载:已加载(/etc/systemd/system/mysqld.service;已启用) 活动:自 2015 年 7 月 13 日星期一 17:46:47 +0800 起处于非活动状态(已死);1s前进程:14145 ExecStart=/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock ( code=exited, status=0/SUCCESS) CGroup: name=systemd:/system/mysqld.service
但是在我按如下方式更改日志后(没有文件夹路径)
log-bin = mysql-bin.log
Run Code Online (Sandbox Code Playgroud)
服务器运行成功。
MySQL 状态
mysqld.service - MySQL 服务器加载:加载(/etc/systemd/system/mysqld.service;启用) 活动:活动(运行)自 2015 年 7 月 13 日星期一 17:47:43 +0800;2s 前 Main PID: 15272 (mysqld_safe) CGroup: name=systemd:/system/mysqld.service ? 15272 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysq ... ? 15615 /usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/... …
下面是我的代码,一切正常,但fmt不好。
web.xml
<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt-1_0.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-fmt-1_0-rt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/fmt-1_0-rt.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c-1_0.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c-1_0.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/tags/jstl-c-1_0-rt.tld</taglib-uri>
<taglib-location>/WEB-INF/tags/c-1_0-rt.tld</taglib-location>
</taglib>
</jsp-config>
Run Code Online (Sandbox Code Playgroud)
Sample.jsp
<%@ taglib uri="/WEB-INF/tags/jstl-fmt.tld" prefix="fmt" %>
<%@ taglib uri="/WEB-INF/tags/jstl-c.tld" prefix="c" %>
<html:form action="/UserAction.do">
<fmt:message key="message.username"/>
<c:out value="Hello" />
</html:form>
Run Code Online (Sandbox Code Playgroud)
ApplicationResource.properties
message.username=Username
Run Code Online (Sandbox Code Playgroud)
标签目录
\projectName\web\WEB-INF\tags
Run Code Online (Sandbox Code Playgroud)
结果
Hello // from core
???message.username??? //the fmt:message.username not working
Run Code Online (Sandbox Code Playgroud)
谁能帮助我,为什么fmt无效?我尝试使用jstl创建3个或更多项目。所有的jstl都在工作,但只有fmt不能。
A级1
public class A {
private static final A instance = new A();
public static A getInstance() {
return new A();
}
}
Run Code Online (Sandbox Code Playgroud)
A级2
public class A {
private static final A instance = new A();
private A(){}
public static A getInstance() {
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
我刚开始学习单例,我看到了两个使用A 1示例和A 2示例的Java示例.A 1级getInstance()
是单身吗?我也想知道这两个A类getInstance()
方法有什么区别?谢谢