小编Men*_*nno的帖子

字符串的正则表达式不以给定的后缀结尾

我找不到合适的正则表达式来匹配任何以某些条件结尾的字符串.例如,我不想匹配以a.结尾的任何内容.

这匹配

b
ab
1
Run Code Online (Sandbox Code Playgroud)

这不匹配

a
ba
Run Code Online (Sandbox Code Playgroud)

我知道正则表达式应该$以标记结尾来结束,尽管我不知道应该在它之前做什么.

编辑:原始问题似乎不是我的案例的合法例子.那么:如何处理多个角色?说什么没有结束ab

我已经能够解决这个问题,使用这个线程:

.*(?:(?!ab).).$
Run Code Online (Sandbox Code Playgroud)

虽然这样做的缺点是,它与一个字符的字符串不匹配.

regex

164
推荐指数
5
解决办法
16万
查看次数

JPA 2 CriteriaQuery,使用限制

我正在使用JPA 2.出于安全原因,我正在使用CriteriaQuery进行类型安全(因此,我不会搜索任何类型查询的解决方案等).

我最近遇到了一个需要设置SQL-LIMIT的问题.

经过大量的搜索,我仍然没有成功找到解决方案.

CriteriaQuery<Product> query = getEntityManager().getCriteriaBuilder().createQuery(Product.class);
Root<Product> product = query.from(Product.class);
query.select(product);

return em.createQuery(query).getResultList();
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

java sql persistence jpa limit

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

JPA Native Query选择和转换对象

我有一个Admin扩展的对象User.默认情况下,两个对象都在User_我的Derby数据库的表中(包含的字段Admin).通常我会选择User这样的:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<User> query = cb.createQuery(User.class);
Root user= query.from(User.class);
Predicate predicateId = cb.equal(category.get("id"), id);
query.select(user).where(predicateId);
return em.createQuery(query).getSingleResult();
Run Code Online (Sandbox Code Playgroud)

但是由于我的查询的复杂性,我正在使用这样的本机查询:

Query query = em.createNativeQuery("SELECT USER.* FROM USER_ AS USER WHERE ID = ?");
query.setParameter(1, id);
return (User) query.getSingleResult();
Run Code Online (Sandbox Code Playgroud)

虽然这会抛出一个强制转换异常.我认为这是由于任何领域Admin.

我的问题是,如何选择User使用具有相同结果的本机查询作为第一个示例(包括与JPQL查询将返回的@LOB@ManyToOne(等等)相同的值)?

java sql jpa jpql

24
推荐指数
3
解决办法
11万
查看次数

JSF服务层

我不确定我在JSF中使用MVC环境的方法是否是最好的方法.由于我想要充分利用JSF,我想知道我的服务层(或模型,用MVC术语说)应该如何"设计".

我知道视图 - 控制器比率应该是1比1(排除例外情况).现在我应该以什么方式设计我的服务层?我应该使用一项大型服务(不这么认为)吗?如果没有,根据我应该分割我的服务?

注意,我的服务将从Beans(控制器以MVC术语)调用,服务本身将在必要时使用JPA调用DAO.

提前致谢

java model-view-controller jsf service-layer

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

Java SimpleDateFormat:错误一小时

我不需要整个故事来澄清我的问题,所以我只是展示代码(这只是一个例子).为什么我的结果有所不同?

long millis = 2305293L;
System.out.println(
    millis + "ms = " + 
    (millis / 1000) + "s = " + 
    (millis / 1000 / 60) + "m");
System.out.println(
    new SimpleDateFormat("HH:mm:ss").
    format(
        new Date(millis)
        )
    );
Run Code Online (Sandbox Code Playgroud)

产量

2305293ms = 2305s = 38m
01:38:25
Run Code Online (Sandbox Code Playgroud)

java date date-format

15
推荐指数
1
解决办法
7391
查看次数

反射getAnnotations()返回null

Searchable.java

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Searchable { }
Run Code Online (Sandbox Code Playgroud)

Obj.java

public class Obj {
    @Searchable
    String myField;
}
Run Code Online (Sandbox Code Playgroud)

void main(String [] args)

Annotation[] annotations = Obj.class.getDeclaredField("myField").getAnnotations();
Run Code Online (Sandbox Code Playgroud)

我希望annotations能包含我的@Searchable.虽然是null.根据文档,这种方法:

返回此元素上的所有注释.(如果此元素没有注释,则返回长度为零的数组.)此方法的调用者可以自由修改返回的数组; 它对返回给其他调用者的数组没有影响.

这更奇怪(对我来说),因为它返回null而不是Annotation[0].

我在这里做错了什么,更重要的是,我怎么能得到我的Annotation

java reflection

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

由错误页面处理的ViewExpiredException仍在日志中

ViewExpiredException当会话过期时,JSF应用程序可以抛出s.在您的系统上安排访客时,此事件将非常常见.因此,应用程序将毫不费力地处理此事件,如下所示:

<error-page>
    <exception-type>javax.faces.application.ViewExpiredException</exception-type>
    <location>/expired</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

当访客尝试在过期的会话上发送请求时,他将被重定向到/expired.由于我不认为这Exception是一个值得一提的问题,我想阻止将堆栈跟踪写入我的applicationserver的日志中.

我怎么能做到这一点?

java jsf jsf-2 glassfish-3

7
推荐指数
1
解决办法
3923
查看次数

每个Ajax调用的Javascript(之前和之后)

因为我正在使用TinyMCE(请不要进入"Primefaces有一个编辑器"或类似的东西)我需要Javascript在每次Ajax调用之前和之后执行一小部分.我不希望为此编辑每个Ajax调用,因为有很多(并且这样做对于任何将来的维护都是不好的做法).

什么是在页面上执行Javascript任何Ajax调用之前和之后最优雅的解决方案?

注:我使用的是定制compositeTinyMCE-textarea.任何事件也都是这个对象也足够了.虽然请记住,实际的Ajax-trigger可能会由一个完全不同的对象调用(尽管可能会重新渲染composite).

java ajax jsf tinymce

5
推荐指数
1
解决办法
2335
查看次数

RESTful Web Service的返回值,考虑空值

我正在为我的RESTful Web服务创建一个客户端.在这种情况下,我的服务器不会总是返回预期的对象(例如,在给定参数上找不到任何内容,因此返回为NULL).

@GET
@Path("/person/{name}")
@Produces("application/xml")
public Person getPerson(@PathParam("name") String name) {
    return people.byName(name);
}
Run Code Online (Sandbox Code Playgroud)

如果找不到给定的名称,byName()方法将返回NULL.在解组给定对象时,这将引发异常.什么是最常见和最简洁的方法来导致if/else语句或以不同方式处理返回的东西?

JAXBContext jcUnmarshaller = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jcUnmarshaller.createUnmarshaller();
return (Person) unmarshaller.unmarshal(connection.getInputStream());
Run Code Online (Sandbox Code Playgroud)

getPerson( ) throws WebApplicationException { 
    throw new WebApplicationException(404);
}
Run Code Online (Sandbox Code Playgroud)

java rest unmarshalling

4
推荐指数
1
解决办法
4652
查看次数

JSF PrettyFaces导致过滤链 - '破解'

首先,在处理我的问题之前,我将向您介绍我的测试用例.我的基本Maven Web应用程序中有一些组件:

  • page.xhtml:用于生成我的请求/回复(以启动过滤)
  • 漂亮的面孔:用于根据我的客户的需要重新定义URL
  • FirstFilter:在Pretty Faces之前执行(在此体育场内进行测试)
  • ThirdFilter:在Pretty Faces之后执行(在此体育场内进行测试)
  • web.xml:定义完整Filter Chain的行为

我将分享重要组件的代码.

漂亮-config.xml中

<url-mapping id="page">
    <pattern value="/page" />
    <view-id value="/page.xhtml" />
</url-mapping>
Run Code Online (Sandbox Code Playgroud)

FirstFilter.java

@WebFilter
public class FirstFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("FirstFilter, request: " + 
                ((HttpServletRequest)request).getRequestURL().toString());
        chain.doFilter(request, response);
        System.out.println("FirstFilter, response");
    }

    // override init and destroy
}
Run Code Online (Sandbox Code Playgroud)

ThirdFilter.java

@WebFilter
public class ThirdFilter implements Filter {
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        System.out.println("ThirdFilter, …
Run Code Online (Sandbox Code Playgroud)

java jsf chaining servlet-filters prettyfaces

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