我们假设我上课了User:
public class User {
private Long id;
private String name;
private Integer age;
private BigDecimal account;
// other fields, getters and setters
}
Run Code Online (Sandbox Code Playgroud)
equals如下覆盖方法是否合适?
@Override
public boolean equals(Object ob) {
if (ob == null) {
return false;
}
if (this == ob) {
return true;
}
if (ob instanceof User) {
User other = (User) ob;
return this.id.equals(other.getId());
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
事实证明,对象的唯一性仅由其ID确定.但在我的应用程序中,id总是独一无二的.它在数据库中提供.我的equals实施是否足以说明这一点?或者这不是最佳做法?
当然我理解在这种情况下,hashCode实现应该如下:
@Override
public int hashCode() {
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用:
<script type="text/javascript">
function myfunc() {
var param = 4;
alert("OK");
}
</script>
Run Code Online (Sandbox Code Playgroud)
我把这个函数称为:
<a4j:jsFunction name="myfunc">
<a4j:actionparam name="param" assignTo="#{MyBean.myfield}"/>
</a4j:jsFunction>
Run Code Online (Sandbox Code Playgroud)
但它不起作用.可能是什么原因?
我使用自定义验证器.困难在于我只需要检查两个字段inputText并进行比较.第一个字段必须大于第二个字段.如果没有,那么我必须显示带有错误信息的消息.所以我需要传递我的自定义验证器第一个inputText字段的值.为此,我需要读取验证器类中第一个InputText字段的值.如何在验证器类中获取必要组件的id?使用标签的解决方案不适合我.我需要直接转到所需的组件也许这可以通过FacesContext的任何方法完成?
有经验的程序员在GWT上开发最常用的模式是什么?我听说这个框架的有效开发经常需要使用不同的设计模式.我想更多地了解这一点.如果可以通过简短的解释,示例或链接.提前致谢!
我在JSF上创建了一个简单的例子.这是一个小的登录应用程序.我的问题是我的页面上出现重复的错误消息:

我的页面上有两个h:message(用于用户名和密码)标签和一个h:messages(全局消息):
<h:form id="loginForm">
<h:panelGrid columns="3">
<h:outputText value="Username" />
<h:inputText id="username" value="#{loginBean.username}"
required="true" requiredMessage="Please enter your username" />
<h:message for="username" errorClass="errorMessage" /> <!-- Message for username -->
<h:outputText value="Password" />
<h:inputSecret id="password" value="#{loginBean.password}"
required="true" requiredMessage="Please enter your password" />
<h:message for="password" errorClass="errorMessage" /> <!-- Message for password -->
<h:commandButton value="Login" action="#{loginBean.login}" />
</h:panelGrid>
<h:messages styleClass="errorMessage" /> <!-- Global messages -->
</h:form>
Run Code Online (Sandbox Code Playgroud)
login()我的支持bean中的Action方法:
public String login() {
FacesContext facesContext = FacesContext.getCurrentInstance();
if ("admin".equals(username) && "pass".equals(password)) { …Run Code Online (Sandbox Code Playgroud) 我有一个位于页面底部的div:
<div id="myDiv"></div>
Run Code Online (Sandbox Code Playgroud)
我想在执行JS函数后转到这个div.换句话说,我想让我的网址变成myurl#myDiv我的div.但是没有重新加载页面.如何使用JavaScript完成此操作?不幸的是,我还没有找到解决这个问题的工作方案.我没有使用任何JS库和框架.
早上好!我是新手.我有一个简单的JSF应用程序.但它没有按预期工作.这是我的login.xhtml:
<h:body>
<h:outputText value="Please enter your login and password"/>
<h:form id="loginForm">
<h:panelGrid columns="2">
<h:outputText value="User name"/>
<h:inputText value="#{textBean.login}" required="true"/>
<h:outputText value="Password"/>
<h:inputSecret value="#{textBean.password}" required="true"/>
<h:commandButton value="Submit" action="#{textBean.doLogin}"/>
</h:panelGrid>
</h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)
这是我的error.xhtml:
<h:body>
<h:outputText value="You have entered incorrect data"/>
<h:form id="errorForm">
<h:commandLink value="Back to login page" action="#{TextBean.backToLogin}"/>
</h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)
这是我的bean类TextBean.java:
公共类TextBean实现Serializable {
private static final long serialVersionUID = 1L;
private String login;
private String password;
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
} …Run Code Online (Sandbox Code Playgroud) 我有以下页面结构:
<span>content01</span>
<span>content02</span>
<span>content03</span>
<br/>
<span>content04</span>
<span>content05</span>
<span>content06</span>
<br/>
<span>content07</span>
<span>content08</span>
<span>content09</span>
<br/>
...
Run Code Online (Sandbox Code Playgroud)
结果我的数据看起来像一个有三列的表.每个span标签的内容都是一个单词.但这看起来很歪,因为所有的词都不同而且长度不同.我想在每行的列之间保持相同的距离.我的问题可以通过使用一个容易解决table的标签或包装每个span单一div.但我想只使用CSS来实现所需的结果.这可能吗?例如,我试图使用以下内容:
span {
width: 60px;
height: 20px;
padding: 40px;
}
Run Code Online (Sandbox Code Playgroud)
或者以下内容:
span {
width: 60px;
height: 20px;
margin: 40px;
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用......
提前致谢!
我有一个非常简单的应用程序,说明了日志记录的功能.我用log4j.但我的设置有些问题.我下载了log4j-1.2.16.jar文件.并将其连接到我的项目属性- > Java构建路径- >库- >添加外部JAR ....这是我的班级:
package ru.log4j.log4jhelloworld;
import org.apache.log4j.Logger;
public class MyClass {
private static final Logger logger = Logger.getLogger(MyClass.class);
public static void main(String[] args) {
logger.info("Hello World!");
}
}
Run Code Online (Sandbox Code Playgroud)
我的log4j.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="aa %p %c: %m%n"/>
</layout>
</appender>
<!--Root logger-->
<root>
<priority value ="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
Run Code Online (Sandbox Code Playgroud)
我的log4j.properties:
log4j.rootCategory=DEBUG, …Run Code Online (Sandbox Code Playgroud) java ×6
jsf ×4
gwt ×2
html ×2
javascript ×2
ajax4jsf ×1
components ×1
css ×1
css3 ×1
eclipse ×1
equals ×1
hashcode ×1
jboss ×1
jsf-2 ×1
log4j ×1
logging ×1
messages ×1
navigation ×1
oop ×1
overriding ×1
richfaces ×1
validation ×1
web ×1
webserver ×1