我正在尝试将@javax.naming.InjectSpring 3 Bean调WtvrBean成JSF 2 @FacesConverter.
Bean和Converter都在同一个包中.而且,在我的spring的applicationContext.xml中,我正在扫描这个包:
<context:component-scan base-package="my-package" />
Run Code Online (Sandbox Code Playgroud)
但这不起作用.当然,使用转换器的JSF 2内部类绝对不在my-package.
例如,如果我@ManagedBean从JSF 2 ManagedBean中删除它,并将其替换为@org.springframework.stereotype.Componentor @Controller,则WtvrBean可以@Inject使用Spring WebFlow在此ManagedBean 上编辑.
好吧,据我所知,@ConverterSpring中没有刻板印象.
我知道我可以使用
FacesContextUtils.getWebApplicationContext(context).getBean("WtvrBean")
Run Code Online (Sandbox Code Playgroud)
但是,通过这种方法,Web应用程序和弹簧之间的耦合变得更加紧密.(注释是元数据,甚至不被某些作者视为依赖).
FacesContextUtils如果没有更好的解决方案,我到目前为止使用.
有任何想法吗?
我正在使用datepicker.举例来说,绑定事件的常用方法beforeShowDay是:
$('.selector').datepicker({
beforeShowDay: function(date) { ... }
});
Run Code Online (Sandbox Code Playgroud)
我需要的是beforeShowDay在呈现日历后绑定事件.所以,首先我说渲染日历:
$('.mySpecialContainer').datepicker({
//in this moment, for some reason, I am not allowed to bind nothing (that's not me who renders the calendar, that's why I am not allowed)
});
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试以通常的方式绑定某些东西:
$('.mySpecialContainer').datepicker({
beforeShowDay: function(date) { ... }
});
Run Code Online (Sandbox Code Playgroud)
当然,日历将在内部再次呈现'.mySpecialContainer',而不仅仅是绑定事件.我试过了:
$('.mySpecialContainer').bind('beforeShowDay', function(date) { ... });
Run Code Online (Sandbox Code Playgroud)
但这只是一个绝望的行动:)
假设我在JSF Managed Bean中有这个动作:
public String doSomething() {
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("msg", "Something was done successfully");
return "view?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)
我view有一个带有id的锚元素msg.我希望网址有这个锚点(对于可访问性问题),例如:
view.jsf#msg
Run Code Online (Sandbox Code Playgroud)
或者是我的FacesServlet过滤器模式.
return "view#msg?faces-redirect=true";显然不会起作用,因为JSF(至少是mojarra)会尝试view#msg作为一个视图进行评估.
所以我的问题是如何让JSF #msg最终重定向到一个URL .
我有一个基于Spring 3的java应用程序构建.这个项目有另一个jar作为依赖.
这个依赖包含一个@org.aspectj.lang.annotation.Aspect类(比如说com.aspectprovider.aspects.MyAspect).有一个@Before建议从实现接口的类编织方法Foo.就像是:
@Before("execution(* com.project.Foo.save(..))")
Run Code Online (Sandbox Code Playgroud)
该Foo接口可以是"项目"内或另一罐子.这个例子没关系.
我的项目包含实现的类Foo.当然,那些是我希望它被编织的类.
我的Spring应用程序上下文配置文件(applicationContext.xml)包含以下行:
<aop:aspectj-autoproxy />
Run Code Online (Sandbox Code Playgroud)
我还将方面声明为bean,并注入一些属性:
<bean id="myAspect" class="com.aspectprovider.aspects.MyAspect"
factory-method="aspectOf" >
<property name="someproperty" value="somevalue" />
</bean>
Run Code Online (Sandbox Code Playgroud)
通过日志记录,我可以看到MyAspect实例化并注入了属性.但是方法保存没有被截获.这就是问题.
如果我将方面类从jar复制到具有Spring的应用程序,它可以工作.当这些方面包含在外部jar中时,方法save不会被截获.有线索吗?
编辑:我如何调用Foo的保存方法:
//in a JSF managed bean
@Inject
private Foo myFoo; //there's a implementation of Foo in a package that spring is looking at. So it is injected correctly.
public String someAction() {
myFoo.save("something"); //the @Before advice is only called if the …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu上使用python 2.5,并且在同一网络中有一台机器叫做machine1.该文件夹是共享的.
如何在该机器的特定文件夹中获取文件?
我试过了,没有成功:
urllib.urlopen('\\machine1\folder\file.txt')
Run Code Online (Sandbox Code Playgroud) 假设我有这个要求:
myview.xhtml?a=1&b=par1&b=par2
Run Code Online (Sandbox Code Playgroud)
在 myview.xhtml
<f:metadata>
<f:viewParam name="a" value="#{myBean.a}"/>
<f:viewParam name="b" value="#{myBean.b}"/>
</f:metadata>
Run Code Online (Sandbox Code Playgroud)
在 MyBean
@ManagedProperty("#{param.a}")
String a;
@ManagedProperty("#{param.b}")
String b;
Run Code Online (Sandbox Code Playgroud)
我认为这setB(String b)将被调用两次,所以我可以将项添加到a List,但它只调用一次,第一个值(par1).
我也尝试将b转换为a,List<String>但JSF并没有将其评估为a List.
所以,我的问题是如何使用@ManagedProperty相同的键注入多个参数值.(现在我正在paramterValues手动)
我有一个git项目.我刚做了一个提交,然后删除了一些目录.我的坏人.现在我想恢复已删除的目录.我怎么做?
我想直接使用java代码中没有spring应用程序上下文(或spring容器)的spring-security web-filters.
这可能吗?我可以直接调用不同的弹簧实时循环方法吗?如果有的话,是否有一个如何做到这一点的样本(哪些不同的接口要注意和它们的排序)?
我正在使用Google Chrome的开发人员工具来检查CSS样式.有时我需要比较页面上2个元素的样式,或者不同页面上的2个元素.
是否有工具或附件可以让我轻松比较?现在我必须在视觉上看,来回切换,一次比较一件事.我希望有一个工具可以突出风格,来源,...的差异
如果存在这样的工具,我愿意使用其他浏览器.
我正在编写一本关于Javascript的书,并且遇到了以下代码示例,用于替换表头HTML元素的class属性的值:
th.className = th.className.replace(/asc/,"dsc");
th.className = th.className.replace(/dsc/,"asc");
为什么.replace的第一个参数,当前值th.className,用正斜杠括起来而不是引号?
为什么不使用引号括起两个参数,而不仅仅是第二个?
在java中,我的客户端类有"代码"attr和equals方法.方法等于接收另一个客户端并与其自身的代码attr进行比较.
在python中,我只是读到我们有__cmp__方法,和java方法一样做.好的,我做到了.我创建了我的类客户端,使用"code"attr和方法comp来验证代码是否相同.
class Client():
def __init__(self, code):
self.code = code
def __cmp__(self, obj):
return obj.code == self.code
def __repr__(self):
return str(self.code)
Run Code Online (Sandbox Code Playgroud)
然后我将3个Client对象放在python的列表中:
bla = [Client(1), Client(2), Client(3)]
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试:
bla.remove(Client(3))
Run Code Online (Sandbox Code Playgroud)
惊人的python删除了第一个元素(客户端代码为1).
我做错了什么?我在python的Lib文件中搜索了list的实现,但是不容易找到.
有人可以帮忙吗?
因为我们有两个日期类:java.sql.Date和java.util.Date.是什么原因ResultSet#getDate()归还sql.Date不是util.Date?
同意sql.Date延伸util.Date.但是,当两个类中的大多数方法看起来相同时,完全创建新类的原因是什么?
java ×3
jsf-2 ×3
python ×2
spring ×2
anchor ×1
aspectj ×1
compare ×1
converter ×1
css ×1
datepicker ×1
directory ×1
events ×1
git-revert ×1
javascript ×1
jquery ×1
jquery-ui ×1
jsf ×1
list ×1
parameters ×1
primefaces ×1
redirect ×1
regex ×1
request ×1
spring-aop ×1
syntax ×1
urllib ×1