小编whi*_*hat的帖子

使用 Java Spring 标签的 URI

为了在 JSP 文件中使用 Spring 表单标签,我添加了以下 taglib 元素:-

    <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
Run Code Online (Sandbox Code Playgroud)

我也使用了这个参考资料。

但是,Eclipse 无法找到标记库描述符文件。正确的 URI 是什么?

java spring-mvc taglib

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

哪个是Controller,哪个是Spring MVC中的HandlerMapping?

我正在使用链接来学习Spring MVC.如上所述,dispatcher-servlet位于顶部,处理所有传入的请求.

它还描述了HandlerMapping和Controller.但是,在源代码中,仅使用Controller.哪个是HandlerMapping呢?是不是一个单独的文件?

或者是否存在于其他复杂情况中?

java spring spring-mvc

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

为什么notify方法应该在synchronized块中?

请考虑以下代码: -

class CalculateSeries implements Runnable{
    int total;
    public void run(){
        synchronized(this){                          // *LINE 1* 
            for(int i = 1; i <= 10000; i++) {
                total += i;
            }

            notify(); //Notify all the threads waiting on this instance of the class to wake up
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

另一个类通过在同步块内获取锁定来等待此类的实例.但是,如果我不在同步块中保存run方法中的代码,那么我得到IllegalMonitorStateException.

notify()应该意味着给所有等待的线程发出信号.那为什么它应该在同步块内呢?

java multithreading

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

等待(长时间超时)和连接(长时间)之间的区别?

在thread-2上由thread-1调用时,wait()和join()方法都会使thread-1等待某个时间或者直到thread-2完成.

如果我们使用这些方法的重载版本,即wait(长超时)和join(long millis),那么

  1. 在等待(长时间超时)的情况下,线程1将通过notify(或notifyall)变为可运行,或甚至发生超时(以先到者为准).

  2. 在join(long millis)的情况下,thread-2将在thread-2完成或超时发生时(以先到者为准)运行.

那么这两个实现之间有什么区别呢?

我认为有些是: -

  1. 对于wait(),我们需要锁定我们正在等待的对象.对于join(),这些不是必需的.
  2. 执行wait()之后,线程会删除它获得的锁定,并在锁定再次运行后重新获得锁定.但是加入呢?如果从同步块(或方法)执行此操作,则线程是否在执行连接后删除锁定?

java multithreading join wait

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

带有 fn 前缀的 XPath 函数 URL 不起作用

以下 XLST 代码工作正常:-

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                version="1.0">
<xsl:template match="/">
    <xsl:for-each select="bookstore/book">
        <xsl:if test="starts-with(author, 'W')">    <!-- Line 1 -->
            <xsl:value-of select="title" />
            &#160; by 
            <xsl:value-of select="author" />
            <br/>
        </xsl:if>
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

这里我直接使用第 1 行中的XPath String 函数starts-with()。

现在,根据W3Schools,添加 XPath 函数的命名空间 ( http://www.w3.org/2005/xpath-functions ),以下代码不起作用:-

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
                xmlns:fn="http://www.w3.org/2005/xpath-functions" version="1.0">
<xsl:template match="/">
    <xsl:for-each select="bookstore/book">
        <xsl:if test="fn:starts-with(author, 'W')">  <!-- Line 2 -->
            <xsl:value-of select="title" />
            &#160; by 
            <xsl:value-of select="author" />
            <br/>
        </xsl:if>
    </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)

在这里,我使用 XPath 函数,并将其前缀附加到命名空间。 …

xml xslt xpath

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

我们在哪里声明 Rails 模型的属性?

我来自 Java 背景,并且已经开始学习 Ruby on Rails。考虑http://guides.rubyonrails.org/active_record_basics.html 中提到的以下代码

class Product < ActiveRecord::Base
end
Run Code Online (Sandbox Code Playgroud)

该指南提到,这会创建一个映射到表 products 的模型 Product(使用 ruby​​ 的复数机制)。它还提到,“通过这样做,您还可以将表中每一行的列与模型实例的属性进行映射。”

但是我们没有在模型 Product 中声明任何属性。它怎么知道它的属性是什么?

一个假设:表的每个属性都作为模型的一个属性。这是真的吗?那么,我们是不是先创建SQL表呢?如果我稍后更改表(例如添加新列),它是否也会动态更改我的模型?

ruby-on-rails

5
推荐指数
2
解决办法
2007
查看次数

通过执行wait()和join()两者,执行线程是否进入"等待"状态?

一个线程有3个状态,但它既没有运行也没有运行: -

  1. 睡眠
  2. 阻止
  3. 等候

当一个线程执行sleep()方法时,它会从运行状态进入SLEEPING状态一段时间由其参数指定(比如几毫秒).

当一个线程正在等待某个其他线程因同步方法或块而获取的对象上的锁定时,该线程将对其进行BLOCKED.

那么,我们可以说一个线程在某个其他线程上执行wait()时进入WAITING状态吗?

在某些线程上调用join()的情况也是如此.

那么,我们可以说wait()(来自java.lang.Object)和join()(来自java.lang.Thread)将线程的状态转换为WAITING吗?

java multithreading

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

@Getter @Setter注释无法解析为类型

我试图在我的JavaBean中自动化getter和setter方法.

因为,为Beans @ Naming Convention描述了方法和字段命名约定,所以必须有一种方法来使用这些约定来避免样板代码,例如为每个bean编写getter和setter方法.我发现了一个这样的方式在这里.

我在我的Windows机器上使用带有Java SE 6的Eclipse Helios IDE.虽然Eclipse提供了一种生成getter和setter方法而无需显式编写它们的方法,但使用注释会使代码更加清晰和可读.

但是,当我在Eclipse中编写以下代码时,我得到以下错误@Compile-time:

    private @Getter @Setter int price;
Run Code Online (Sandbox Code Playgroud)

错误:

Getter无法解析为某种类型.
Setter无法解析为某种类型.

我该如何解决?

java annotations

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

@SessionAttribute:模型何时初始化?

当我想在Spring 3中的Session范围中使用模型时,我使用了foll.控制器中的注释: -

    @SessionAttribute("myModel");
Run Code Online (Sandbox Code Playgroud)

但是,这只是myModel的声明.它在什么时候被初始化,以便我在View中使用它.Spring如何知道这个模型的类型?

有人可以用例子解释一下吗?

spring-mvc spring-annotations

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

覆盖接口的其他方案

请考虑以下代码:

public class Main implements Vehicle, Car {
  public static void main(String[] args) {
    Main generalConcreteClass = new Main();
    System.out.println(((Vehicle) generalConcreteClass).TYPE); //**Line 1**

    Vehicle vehicle = new Main();  //**Line 2**
    System.out.println(vehicle.TYPE);//  Here there is no Ambiguity since vehicle is of TYPE vehicle

    System.out.println(((Car)vehicle).TYPE);  // **Line3** This doesn't throw ClassCastException..
  }
}
Run Code Online (Sandbox Code Playgroud)

这里,Vehicle和Car接口都具有相同的常量TYPE,具有不同的值.

Line1上的generalConcreteClass会有歧义,因此需要进行类型转换,并且可以访问任何一个TYPE.

Line2:车辆对象有车辆界面参考.

第3行:如何将我的车辆对象转换为Car类型并仍然可以访问常量TYPE of Car.如何使车辆物体可见.或者它如何在内部工作?

现在,如果我不使我的类实现Car接口,那么类型的类型转换车辆对象类型Car会抛出ClassCastException.

java interface

0
推荐指数
1
解决办法
93
查看次数

如何在rails模型中指定关联的热切加载

class A < ActiveRecord::Base
  has_many :Bs
  has_many :Cs
  ...
end
Run Code Online (Sandbox Code Playgroud)

我想在A上进行查询时加载所有的B和C,比如A.where(name: :abc)使用单个查询,而不是多次调用数据库.

我不希望为.includes我运行的每个查询指定.如何在模型中指定预先加载?

我看了许多类似的问题并尝试这样做,但它不起作用:

default_scope :include => [:Bs, :Cs]
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-many eager-loading

0
推荐指数
1
解决办法
161
查看次数