我有一个带有两个日期的范围日期选择器:start和end,两个日期都可以为空。我想过滤一张表,其中实体有一个确切的日期:date。
因此,这里有一些例子。我想比赛。想象要匹配的日期是当前日期(17/07/2016)。
在我看来,这些都是极端情况,也是我之所以如此努力的原因。
实际上我的代码如下:
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Transaction> cq = cb.createQuery(Transaction.class);
Root<Transaction> root = cq.from(Transaction.class);
List<Predicate> predicates = new ArrayList<>();
Predicate startPredicate = cb.greaterThanOrEqualTo(root.get(Transaction_.date), start);
Predicate endPredicate = cb.greaterThanOrEqualTo(root.get(Transaction_.date), end);
predicates.add(startPredicate);
predicates.add(endPredicate);
cq.select(root).where(predicates.toArray(new Predicate[] {}));
TypedQuery<Transaction> query = getEm().createQuery(cq);
query.setFirstResult(firstRow);
query.setMaxResults(maxRow);
List<Transaction> resultList = query.getResultList();
Run Code Online (Sandbox Code Playgroud)
我想得到这样的查询:
CriteriaBuilder cb = getEm().getCriteriaBuilder();
CriteriaQuery<Transaction> cq = cb.createQuery(Transaction.class);
Root<Transaction> root = cq.from(Transaction.class);
List<Predicate> predicates = new ArrayList<>();
Predicate startPredicate = cb.greaterThanOrEqualTo(root.get(Transaction_.date), start);
Predicate …Run Code Online (Sandbox Code Playgroud) 我创建了一个实现自定义验证器的新自定义组件.以下是我称之为:
<p:inputText value="#{MyBean.value}" >
<f:attribute name="label" value="#{ResourceBean.labels['label']}"/>
<my:validator error="#{ResourceBean.message['the.error.message']}"
expression="#{ResourceBean.regExp['alphanumeric']}"/>
</p:inputText>
Run Code Online (Sandbox Code Playgroud)
这是验证实现
String val = value == null ? "" : value.toString();
if (!val.matches(getExpression())) {
throw new ValidatorException(new
FacesMessage(FacesMessage.SEVERITY_ERROR,getErrorSummary(),null));
Run Code Online (Sandbox Code Playgroud)
和属性文件中的错误消息:
the.error.message={0}\: is Invalid.
Run Code Online (Sandbox Code Playgroud)
问题是,{0}错误消息中的标签没有替换,因此我收到错误消息:
{0}: is Invalid.
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决它?
我们正在JSF中开发一个简单的Web应用程序,其中需要包含"忘记密码"模块.为了演示和简单起见,我在Java Servlet中尝试了以下代码.它可以向Gmail发送邮件,并且可以正常工作,完全没有问题.以下是完整的Servlet代码.
public class MailClient extends HttpServlet {
private class SMTPAuthenticator extends Authenticator {
private PasswordAuthentication authentication;
public SMTPAuthenticator(String login, String password) {
authentication = new PasswordAuthentication(login, password);
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return authentication;
}
}
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String from = "bhaveshp1980@gmail.com";
String to = "bhaveshp1980@gmail.com";
String subject = "A mail from Java.";
String message = "My first mail from Java."; …Run Code Online (Sandbox Code Playgroud) 如何向组件p:panel中添加图标?
<p:panel header="text" />
Run Code Online (Sandbox Code Playgroud)
不幸的是,它不支持“ icon”属性。所以我尝试了这个:
<f:facet name="header">
<h:outputText value="text">
</h:outputText>
<p:commandLink styleClass="ui-icon ui-icon-comment" />
</f:facet>
Run Code Online (Sandbox Code Playgroud)
但这会在文本和仅显示为图标的命令“链接”之间添加换行符。
有人知道我还能怎么做吗?ty
我试图在prime-faces中看到一些功能可用性......我想知道在prime-faces中工具提示中是否有任何字体样式和背景颜色更改功能...
请告诉我.
这是示例代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Tool Tip Customization</title>
</h:head>
<h:body>
<h:panelGrid columns="3" cellpadding="5">
<h:outputText value="Focus/Blur: " />
<p:inputText id="focus" title="This tooltip is displayed when input gets the focus"/>
<p:tooltip for="focus" showEvent="focus" hideEvent="blur" />
<h:outputText value="Fade: " />
<h:outputLink id="fade" value="#">
<h:outputText value="Fade Effect" />
</h:outputLink>
<p:tooltip for="fade" value="Fade effect is used by default" showEffect="fade" hideEffect="fade" />
<h:outputText value="Slide: " />
<h:outputLink id="slide" value="#">
<h:outputText value="Slide …Run Code Online (Sandbox Code Playgroud) 我有问题<p:commandLink>.我想制作悬停效果,但我无法<p:graphicImage>通过CSS 加载图像.
CSS:
.accountEditBtn {
background-image:
url('#{request.contextPath}/resources/image/pencil_black.png');
}
Run Code Online (Sandbox Code Playgroud)
JSF:
<p:commandLink
update="@form"
actionListener="#{someBean.someListener}">
<h:graphicImage styleClass="accountEditBtn" />
</p:commandLink>
Run Code Online (Sandbox Code Playgroud)
我看到带边框的空矩形.
但是当我将alt添加到graphicImage时,我从alt上获取文本图像...
我的错误在哪里?谢谢.ps输入错误 - classType - > styleClass
我有一个下拉列表,其中包含一个帐号和两个日期字段.如果我更改下拉列表的值,我想重置日期字段.我还有一个搜索按钮,使用这些字段进行查询(帐号#,从日期到日期).
<fieldset>
<p:selectOneMenu id="account_search" value="#{accountHistoryBean.account}" converter="accountConverter">
<f:attribute name="itemsList" value="#{accountHistoryBean.userAccounts}"/>
<f:selectItems value="#{accountHistoryBean.userAccounts}" var="account" itemLabel="#{account.number}" itemValue="#{account}"/>
<p:ajax update="start_date_search, end_date_search" event="change" actionListener="#{accountHistoryBean.resetDates}" process="account_search"/>
</p:selectOneMenu>
<fieldset>
<fieldset>
<p:calendar value="#{accountHistoryBean.fromDate}" id="start_date_search" pattern="dd/MM/yyyy"/>
</fieldset>
<fieldset>
<p:calendar value="#{accountHistoryBean.toDate}" id="end_date_search" pattern="dd/MM/yyyy"/>
</fieldset>
<fieldset>
<p:commandLink styleClass="regular_button" action="#{accountHistoryBean.search}" update=":search :accountHistoryList :accountHistoryList:accountHistTable" >
<span>#{msj.search}</span>
</p:commandLink>
</fieldset>
Run Code Online (Sandbox Code Playgroud)
如果我执行以下操作:
然后将日期重置为其默认值.
但如果我做以下事情:
然后它将Date字段更改为DATEX和DATEY(不是默认值).
Bean中的方法如下:
public void resetDates()
{
Calendar calendar = GregorianCalendar.getInstance();
//By default set toDate as 3/3
calendar.set(Calendar.MONTH, 2);
calendar.set(Calendar.DAY_OF_MONTH, 3);
toDate = calendar.getTime();
//By default fromDate …Run Code Online (Sandbox Code Playgroud) 我们来看看下面的Java代码.
public class Main
{
public static void main(String[] args)
{
//\u000d System.out.println("It works fine.");
}
}
Run Code Online (Sandbox Code Playgroud)
在前面的代码片段中,main()方法内的唯一行包含一个unicode换行符\u000d.它显示指定的消息" 它工作正常. "即使该行被注释掉.它是如何工作的?
我正在尝试BasicDataSource使用DBCP建立与Oracle数据库的连接.
我commons-dbcp-1.4-bin.zip从这里下载了.
类路径上有三个jar文件.
我正在使用以下代码建立连接.
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.dbcp.BasicDataSource;
public class DatabaseConnection {
private final static BasicDataSource BASIC_DATA_SOURCE = new BasicDataSource();
private final static String SQL = "SELECT * FROM admin WHERE login_id=? AND admin_pwd=?";
static {
BASIC_DATA_SOURCE.setDriverClassName("oracle.jdbc.OracleDriver");
BASIC_DATA_SOURCE.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
BASIC_DATA_SOURCE.setUsername("wagafashiondb");
BASIC_DATA_SOURCE.setPassword("root");
}
private static Connection getConnection() throws SQLException {
return BASIC_DATA_SOURCE.getConnection();
}
public boolean exists(String userName, String password) throws SQLException {
Connection …Run Code Online (Sandbox Code Playgroud) 我有一个支持bean如下:
@Named
@RequestScoped
public class ClientNewBackingBean {
@Inject
private ClientFacade facade;
private Client client;
Run Code Online (Sandbox Code Playgroud)
本Client类有一个List<Child> childrenList属性,等等.我能够创建一个新的Client设置时childrenList用new ArrayList().
在视图中,我有一个输入文本字段和一个Add Child按钮.该按钮的属性actionListener=#{clientNewBackingBean.addChild()}实现为:
public void addChild() {
if(client.getChildrenList() == null) {
client.getChildrenList(new ArrayList());
}
Child c = new Child("John Doe");
client.getChildrenList().add(c);
}
Run Code Online (Sandbox Code Playgroud)
每次Add Child单击按钮时,都会重新创建bean,并且视图只显示一个John Doe子项(由于它是Request stroped,我相信).除了将bean范围更改为Session之外,还有其他方法可以解决这个问题吗?