我正在尝试将Spring上下文中定义的bean注入CDI托管组件,但我没有成功.不注入bean,而是每次执行注入时都会创建一个新实例.我的环境是使用JBoss Weld的Tomcat 7.
Spring ApplicationContext是直截了当的:
<beans>
...
<bean id="testFromSpring" class="test.Test" />
...
</bean>
Run Code Online (Sandbox Code Playgroud)
CDI托管bean看起来像这样:
@javax.inject.Named("testA")
public class TestA {
@javax.inject.Inject
private Test myTest = null;
...
public Test getTest() {
return this.myTest;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的 faces-config.xml
<faces-config xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" version="2.0">
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
</faces-config>
Run Code Online (Sandbox Code Playgroud)
但是,当我test从JSF页面访问该属性时,Test每次访问时都会创建一个新实例.这是一个简单的例子:
<html>
...
<p>1: <h:outputText value="#{testFromSpring}" /></p>
<p>2: <h:outputText value="#{testA.test}" /></p>
...
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
1: test.Test@44d79c75
2: test.Test@53f336eb
Run Code Online (Sandbox Code Playgroud)
刷新后:
1: test.Test@44d79c75
2: test.Test@89f2ac63
Run Code Online (Sandbox Code Playgroud)
我可以看到第一个输出是正确的.无论我多久刷新一次页面,都会testFromSpring返回Spring上下文中定义的bean的值.但是第二个输出清楚地表明,每次调用组件getTest上的方法时test,Test …
UML classdiagrams是描述类及其关系的标准图形符号.
是否有标准的文本符号(DSL)来描述相同的内容?不要说XMI或EMF ;-)
我认为你可以用Corba IDL做到这一点并使用Interfaces作为类,但这在Corba方面有点太多了.您可以使用Java接口,但这也是Java.
我的问题的背景是写发电机.我认为基于DSL的语法树编写生成器比解析图形符号更容易.首先必须将图形符号转换为语法树(与您从相应的DSL获得的语法树相同).我认为将图形符号转换为语法树比翻译DSL(你可以使用ANTLR)更难.
我正在玩ANTLR,并希望创建一个这样的函数:
MOVE x y z pitch roll
Run Code Online (Sandbox Code Playgroud)
这会产生以下AST:
MOVE
|---x
|---y
|---z
|---pitch
|---roll
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经尝试过没有运气,并且我不断让AST将参数作为兄弟姐妹,而不是孩子.
代码到目前为止:
C#:
class Program
{
const string CRLF = "\r\n";
static void Main(string[] args)
{
string filename = "Script.txt";
var reader = new StreamReader(filename);
var input = new ANTLRReaderStream(reader);
var lexer = new ScorBotScriptLexer(input);
var tokens = new CommonTokenStream(lexer);
var parser = new ScorBotScriptParser(tokens);
var result = parser.program();
var tree = result.Tree as CommonTree;
Print(tree, "");
Console.Read();
}
static void Print(CommonTree tree, string indent)
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个学校项目,我们将创建一个 Silverlight 应用程序,该应用程序使用 bing 地图作为一种地图编辑器,用于放置汽车收费站。
例子:

有一些要求,它必须支持拖放,我们必须使用MVVM(Model View View-Model)。现在我们通过拥有一个带有一组 Image 子元素的 MapLayer 完成了拖放功能,然后连接了启用拖放的事件(请参阅下面的代码)。但是现在我们面临一个问题,我们如何将 ViewModel 连接到这个,我就是看不到它:(
我不是要求一个完整的解决方案,但一些帮助会很好。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.IO;
using Microsoft.Maps.MapControl;
namespace BingMapDragDrop
{
public partial class MainPage : UserControl
{
private MapAddType AddType = MapAddType.None;
private Location _myhome = new Location(55.6686512716393, 12.5481431962938, 0);
private MapLayer EndNodeLayer;
private double HideEndNodeLayer = 10.0;
private MapLayer EndNodeIntermediatedLayer;
private double …Run Code Online (Sandbox Code Playgroud) function getIdModelsSliderJuwels(){
$collection = Mage::getModel("catalog/product")->getCollection();
$collection->addAttributeToFilter("attribute_set_id", 27);
$collection->addAttributeToSelect('modellijnen');
// $collection->setRandomOrder();
// $collection->getSelect()->limit( 5 );
return $collection;
}
Run Code Online (Sandbox Code Playgroud)
嗨,您好,
我想知道如何为在Magento中运行的查询设置限制因为
$collection->getSelect()->limit( 5 );不起作用.
另外如何随意选择,$collection->setRandomOrder();也行不通.
TXS.
我目前在IIS7中有2个ASP.NET 3.5 Web应用程序(我们称之为WebParent和WebChild).
WebChild嵌套在IIS7中的WebParent列表中,并设置为应用程序(而不仅仅是WebParent中的虚拟目录).两者目前都使用自己的(Classic)应用程序池.
WebParent和WebChild都在自己的根目录中拥有自己完全定义的web.config文件.
我假设看到WebChild被定义为IIS中的"应用程序",它不会从WebParent配置文件继承任何内容.但是,尽管有这样的配置,我看到web.config中的各种元素的错误已经被定义(这是正确的,两个配置文件中都有一些项目,但我认为它们应该完全独立于一个另一个)?
任何人都可以澄清为什么会发生这种情况?
我在QML项目中定义自定义属性时遇到问题:
Item {
property MovieTileItem data
Text {
text: "Some text"
}
}
Run Code Online (Sandbox Code Playgroud)
MovieTitleItem是在单独的QML文件中定义的Item:
import Qt 4.7
Item {
property string title
property string posterSource
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是"无法将对象分配给属性"指向属性声明.有任何想法吗?
我在Vim中编辑文件是我记录终端命令行以及我所做的描述.我的所有命令行都以$开头,所以我的文件看起来像这样:
Run Code Online (Sandbox Code Playgroud)This is a description of what this command does, it can be quite long and should have line breaks. $ ./the_command.sh
这些实际上是Viki文件,但我想这个问题应该适用于任何文件类型.我有文件类型检测,文件被正确识别.
现在的问题是:
我希望(硬)换行符插入到所有文本中,除了命令行的实际副本,这可以通过前导$轻松识别.
在Vim中是否可以根据模式定义应用换行规则的异常?我会在viki文件的语法文件中这样做吗?
更新使用Herbert和Jefromi建议的组合,我现在在.vimrc中有这个:
au CursorMovedI *.viki call SetTextWidth()
function! SetTextWidth()
if getline(".")=~'^\$'
set textwidth=1000
else
set textwidth=80
endif
endfunction
Run Code Online (Sandbox Code Playgroud)
它完全符合我的要求.多谢你们!
我有一个部署在tomcat 6中的Web应用程序项目.我可以使用url访问我的应用程序:
HTTP://本地主机:8082/MyApplication的
我也不能通过另一个URL来访问这个应用程序: http:// localhost:8082/myapp
这可能吗 ?如果是,我有什么替代品?
当然,我不想更改应用程序的原始名称('MyApplication').
谢谢,Abhishek.
我需要显示一个包含单选按钮的对话框; 当我选择适当的单选按钮时,对话框应该消失?