小编Tin*_*iny的帖子

使用JPA条件API进行日期比较

我有一个带有两个日期的范围日期选择器:startend,两个日期都可以为空。我想过滤一张表,其中实体有一个确切的日期:date

因此,这里有一些例子。我想比赛。想象要匹配的日期是当前日期(17/07/2016)。

  • null-17/07/2016->比赛
  • 17/07/2016-空->匹配
  • 2016/07/17-2016/07/17->比赛
  • null-null->全部匹配

在我看来,这些都是极端情况,也是我之所以如此努力的原因。

实际上我的代码如下:

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)

jpa date criteria-api

3
推荐指数
1
解决办法
2万
查看次数

在自定义验证器中显示标签

我创建了一个实现自定义验证器的新自定义组件.以下是我称之为:

<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)

任何想法如何解决它?

validation jsf primefaces jsf-2

2
推荐指数
1
解决办法
1661
查看次数

在没有Java密码身份验证的情况下将邮件发送到任何邮件服务器(Gmail,Yahoo等)

我们正在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)

java email servlets

2
推荐指数
1
解决办法
1641
查看次数

在p:panel中添加图标?

如何向组件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

jsf primefaces

2
推荐指数
1
解决办法
7095
查看次数

工具提示背景颜色更改和primefaces中工具提示文本的字体样式

我试图在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)

css jsf primefaces

2
推荐指数
1
解决办法
1万
查看次数

带图像的JSF commandLink

我有问题<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

css jsf primefaces

2
推荐指数
1
解决办法
3万
查看次数

JSF + Primefaces p:ajax on p:selectOneMenu未触发

我有一个下拉列表,其中包含一个帐号和两个日期字段.如果我更改下拉列表的值,我想重置日期字段.我还有一个搜索按钮,使用这些字段进行查询(帐号#,从日期到日期).

<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)

如果我执行以下操作:

  1. 更改"从日期"和"到日期"字段
  2. 更改帐户字段(使用ajax下拉列表).

然后将日期重置为其默认值.

但如果我做以下事情:

  1. 将"从日期"和"到日期"字段更改为DATEX和DATEY
  2. 按搜索
  3. 将"从日期"和"到日期"字段更改为DATEX2和DATEY2
  4. 更改帐户字段(使用ajax下拉列表).

然后它将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)

jsf primefaces

2
推荐指数
1
解决办法
3万
查看次数

带有unicode换行符的注释语句

我们来看看下面的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.它显示指定的消息" 它工作正常. "即使该行被注释掉.它是如何工作的?

java unicode newline

2
推荐指数
1
解决办法
447
查看次数

javax.servlet.ServletException:java.lang.NoClassDefFoundError:org/apache/commons/pool/KeyedObjectPoolFactory

我正在尝试BasicDataSource使用DBCP建立与Oracle数据库的连接.

commons-dbcp-1.4-bin.zip这里下载.

类路径上有三个jar文件.

  1. 公地DBCP-1.4
  2. 公地DBCP-1.4-源
  3. 公地DBCP-1.4-的javadoc

我正在使用以下代码建立连接.

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)

java database-connection oracle10g apache-commons-dbcp

2
推荐指数
1
解决办法
6097
查看次数

在Request Scoped Bean中将项添加到List

我有一个支持bean如下:

@Named
@RequestScoped
public class ClientNewBackingBean {

    @Inject
    private ClientFacade facade;
    private Client client;
Run Code Online (Sandbox Code Playgroud)

Client类有一个List<Child> childrenList属性,等等.我能够创建一个新的Client设置时childrenListnew 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之外,还有其他方法可以解决这个问题吗?

jsf scope cdi

2
推荐指数
1
解决办法
1363
查看次数