小编Tar*_*rik的帖子

Java SE/EE/ME之间的区别?

当我想开始学习Java时,我应该安装哪一个?我将从一些基础开始,所以我将编写简单的程序来创建文件,目录,编辑XML文件等等,现在没有什么太复杂了.

我想我应该在Windows 7桌面上安装Java SE(标准版).我已经有了Komodo IDE,我将用它来编写Java代码.

java java-me java-ee

326
推荐指数
9
解决办法
35万
查看次数

<link> vs <a>:何时使用其中一个?

<link>和之间有些混淆<a>.

我知道为了将CSS添加到HTML文档,我们使用<link>标记,例如:

<link type="text/css" rel="stylesheet" href="/spinner/styles.css?ln=css" />
Run Code Online (Sandbox Code Playgroud)

但是,我无法理解为什么我们不使用锚<a>标记(因为它包含相同的必要属性),例如:

 <a type="text/css" rel="stylesheet" href="/spinner/styles.css?ln=css" />
Run Code Online (Sandbox Code Playgroud)

这两个标签可以互换吗?此外,如果这是可能的,那么我们如何选择一个而不是另一个?为什么?

更新:

我有这种困惑,因为我在完整参考HTML和CSS书中看到了关于Tag 的rel属性<a>,它:

rel:对于包含该href属性的锚点,此属性指定目标对象与链接对象的关系.

所以我认为它可以做与<link>标签相同的功能.

html anchor hyperlink stylesheet-link-tag

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

在Spring + Tomcat上使用JSF 2.2.9导致java.lang.NoClassDefFoundError:javax/enterprise/context/spi/Contextual

我需要在JSF组件中使用自定义html属性,为此我发现的唯一解决方案是使用JSF 2.2,这样:

<f:passThroughAttribute name="data-toggle" value="modal" />
Run Code Online (Sandbox Code Playgroud)

问题是我正在使用Spring + Tomcat而我无法改变这个因为我没有时间.每次我启动我的服务器时都会出现以下错误:

Informações: CDI @ViewScoped manager unavailable
java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Contextual
Run Code Online (Sandbox Code Playgroud)

我知道这是因为我不使用CDI,但正如我所说,由于时间的原因,我无法从Spring改为CDI.

我怎么解决这个问题 ?我必须使用JSF 2.2(因为自定义html属性)和Spring.

解决了:

这个问题解决了,我降级到JSF 2.2.6并且错误停止了.

堆栈跟踪:

Fev 01, 2015 4:13:57 PM com.sun.faces.application.view.ViewScopeManager <init>
Informações: CDI @ViewScoped manager unavailable
java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Contextual
at com.sun.faces.application.view.ViewScopeManager.<init>(Unknown Source)
at com.sun.faces.application.view.ViewScopeManager.getInstance(Unknown Source)
at com.sun.faces.application.view.ViewScopeEventListener.processEvent(Unknown Source)
at javax.faces.event.SystemEvent.processListener(Unknown Source)
at javax.faces.event.ComponentSystemEvent.processListener(Unknown Source)
at com.sun.faces.application.ApplicationImpl.processListeners(Unknown Source)
at com.sun.faces.application.ApplicationImpl.invokeListenersFor(Unknown Source)
at com.sun.faces.application.ApplicationImpl.publishEvent(Unknown Source)
at javax.faces.component.UIViewRoot.getViewMap(Unknown Source)
at javax.faces.component.UIViewRoot.getViewMap(Unknown Source)
at com.sun.faces.mgbean.BeanManager$ScopeManager$ViewScopeHandler.handle(Unknown Source)
at com.sun.faces.mgbean.BeanManager$ScopeManager.pushToScope(Unknown Source)
at com.sun.faces.mgbean.BeanManager.createAndPush(Unknown Source)
at com.sun.faces.mgbean.BeanManager.create(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

jsf spring cdi jsf-2

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

如何使用ScheduledExecutorService更改重复任务的速率或周期?

我有一个蓝牙聊天示例应用程序的修改版本.我已经设置了一个ScheduledExecutorService使用以预定义的速率通过蓝牙发送命令scheduleAtFixedRate.

我已经设置了一个PreferenceActivity允许用户修改时间段.但我不确定如何在更新期间实现重复的实际任务.我需要以ScheduledExecutorService某种方式取消并重新启动吗?

这是我的代码的相关部分.

private ScheduledExecutorService scheduleTaskExecutor;

public long ReadInterval = 1;

...    

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        scheduleTaskExecutor = Executors.newScheduledThreadPool(5);
...
    // This schedule a task to run every 1 second:
    scheduleTaskExecutor.scheduleAtFixedRate(new Runnable() {
      public void run() {


        // If you need update UI, simply do this:
         runOnUiThread(new Runnable() {
            public void run() {
            // update your UI component here.
              if (connected == true) {
                  sendMessage("READ");                
                  if (D) Log.i(TAG, "In …
Run Code Online (Sandbox Code Playgroud)

java android recurring runnable scheduledexecutorservice

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

在JSF中按类型查找组件

我的问题与这个问题有关.在JSF中动态获取所有隐藏的输入字段,但它与我想要使用JSF而不是纯HTML的不一样,并假设我的.xhtml文件中包含以下内容:

<h:inputHidden id="name1" value="SomeValue1"/>
<h:inputHidden id="name2" value="SomeValue2"/>
Run Code Online (Sandbox Code Playgroud)

我开发了一个小代码,我试图h:inputHidden动态获取所有标签并将其值打印到控制台,但问题是我无法找到一种方法如何使每一个动态.在我的代码中,id如果我想迭代uicomponents,我应该知道表单,如何迭代UIComponent组件树中的所有内容?(我试过,UIViewRoot#getChildren()但我只得到第一个孩子).

这是代码片段:

// formId is the id of my form
List<UIComponent> components = FacesContext.getCurrentInstance().getViewRoot().findComponent("formId").getChildren();
// A List of UIComponent where I am adding my Hidden Inputs
List<UIComponent> hiddenComponents = new ArrayList<UIComponent>();

for (UIComponent component : components) {

    // using the hidden inputs type in JSF: HtmlInputHidden
    if (component instanceof HtmlInputHidden) {
        hiddenComponents.add(component);
    }

}

for (UIComponent component : hiddenComponents) {

    // …
Run Code Online (Sandbox Code Playgroud)

jsf uicomponents jsf-2

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

Stateless Session Beans和Request Scoped bean之间有什么区别

我知道无状态会话Bean是指EJB bean,而Request Scoped是指CDI bean(或JSF托管bean),因此我将首先从Java EE Tutoriel中提供它们的两个定义.

无状态会话Bean定义:

无状态会话bean不与客户端保持会话状态.当客户端调用无状态bean的方法时,bean的实例变量可能包含特定于该客户端的状态,但仅限于调用期间.方法完成后,不应保留特定于客户端的状态.

CDI Request Scoped定义:

用户在单个HTTP请求中与Web应用程序的交互.

我从这两个定义中理解的是,无状态会话bean的概念与请求范围概念相同,但我不确定,因为命名"会话"使我感到困惑.所以,我问自己是否是这种情况(相同的概念),也许他们会有类似的命名(使用请求而不是会话).

所以,我的问题是:EJB无状态会话bean和CDI/JSF请求范围bean之间是否有任何概念上的区别?

jsf scope ejb java-ee cdi

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

何时以及如何在JSF中生成clientID?

为了更好地理解JSF(2.x)中的clientID生成,有人可以在JSF生成客户端ID(生命周期阶段,构建时间或渲染时间......)时直接向我解释吗?

以及如何生成客户端ID(如果提供/不提供组件ID,而不是,随机或使用特定逻辑......)?

jsf page-lifecycle clientid jsf-2

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

将CDI bean注入JSF @ViewScoped bean

我有一个JSF,CDI项目的问题.我做了很多研究,我发现在CDI中没有@ViewedScoped注释.我用对话框解决了基于ajax的页面的问题.我想从datatable传递变量到对话框.为此,我不能使用@RequestedScopedbean,因为在请求结束后丢弃值.任何人都可以帮我解决吗?我不能用,@SessionScoped但这是一个不好的做法恕我直言.或者也许只将这一个变量保存到知道的会话中.你们能给我任何提示如何优雅地解决这个问题吗?

import javax.enterprise.context.ApplicationScoped;    
@ApplicationScoped
public class ServiceBean implements Serializable {
...
Run Code Online (Sandbox Code Playgroud)
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean
@ViewScoped
public class SomeBean {

@Inject
ServiceBean serviceBean;


@Postconstruct ...
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

com.sun.faces.mgbean.ManagedBeanCreationException: An error occurred performing resource injection on managed bean warDetailBean
Run Code Online (Sandbox Code Playgroud)

jsf cdi jsf-2 view-scope

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

EJB Pooling vs Thread-safe和@PreDestroy

我无法理解EJB容器如何管理@Stateless具有实例变量的bean的线程安全性.在解释我的担忧之前,我将举一个简单的例子:

@Stateless
public class BeanTest{

@Inject
private String var;

private Connection connection;

@Resource(name = "jdbc/TestDB")
private DataSource dataSource;

public void modify() {
    var = "TestName";
}

@PostConstruct
public void initialize() {
    try {
        connection = dataSource.getConnection();
    } catch (SQLException sqle) {
        sqle.printStackTrace();
    }
}

@PreDestroy
public void cleanup() {
    try {
        connection.close();
        connection = null;
    } catch (SQLException sqle) {
        sqle.printStackTrace();
    }
}
}
Run Code Online (Sandbox Code Playgroud)

这是我的问题,假设我们的容器支持池:

1.池与线程安全:

用户1使用了一个实例BeanTestvar使用modify方法修改了,然后他完成了并且容器将实例放入BeanTest托管池中.当用户2尝试对请求使用相同的bean时,他可能会获得BeanTest由用户1初始修改的相同实例(我知道可能还会获得另一个实例).那么var …

java multithreading ejb java-ee ejb-3.1

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

哪个先运行?实例变量或超级构造函数的默认值?

根据SCJP6(页577),我发现实例变量在超类构造函数完成之前被赋予了默认值,我在Debugg模式中尝试了一个例子,但我看到超级承包商在实例变量获取其默认值之前运行,可以任何一个解释那对我来说?

我想用的例子:

package courseExercise;

class test {
    test() {
        System.out.println("Super Constructor run");
    }
}

public class Init extends test {

    private Integer i = 6;
    private int j = 8;

    Init(int x) {
        super();
        System.out.println("1-arg const");
    }

    Init() {
        System.out.println("no-arg const");
    }

    static {
        System.out.println("1st static init");
    }
    public static int d = 10;
    {
        System.out.println("1st instance init");
    }
    {
        System.out.println("2nd instance init");
    }
    static {
        System.out.println("2nd static init");
    }

    public static void main(String[] args) {
        new Init();
        new Init(7); …
Run Code Online (Sandbox Code Playgroud)

java constructor scjp instance-variables

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