我有一个网络应用程序,用户可以直接发送到某些特定页面(例如他可以查看或编辑项目的页面).为此,我们提供了一个特定的网址.这些网址位于外电流网络的应用程序(即,它们可以存在于另一网络的应用程序,或电子邮件).
网址看起来像http://myserver/my-app/forward.jsf?action=XXX¶m=YYY
,其中:
from-outcome
任何JSF的行动navigation-case
中faces-config.xml
.例如,我可以拥有这些网址:
http://myserver/my-app/forward.jsf?action=viewItem&actionParam=1234
http://myserver/my-app/forward.jsf?action=editItem&actionParam=1234
当然,我有一个Java类(bean),它将检查一些安全性约束(即允许用户查看/编辑相应的项目?),然后将用户重定向到正确的页面(例如edit.xhtml
,view.xhtml
或access-denied.xhtml
).
目前的实施
目前,我们有一个完成前进的基本方法.当用户单击该链接时,将调用以下XHTML页面:
<html>
<body id="forwardForm">
<h:inputHidden id="myAction" binding="#{forwardBean.hiddenAction}"/>
<h:inputHidden id="myParam" binding="#{forwardBean.hiddenActionParam}"/>
<h:commandButton id="forwardBtn" actionListener="#{forwardBean.doForward}" style="display: none;"/>
</body>
<script type="text/javascript">
document.getElementById('forwardForm:forwardBtn').click();
</script>
</html>
Run Code Online (Sandbox Code Playgroud)
如您所见,我<h:inputHidden>
在Java bean中绑定了两个组件.它们将用于存储both action
和actionParam
request参数(使用FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("actiontParam");
)的值.我还提供了doForward
在呈现页面时立即调用的方法,该方法将(再次)用户重定向到真实页面.方法是:
public void doForward(ActionEvent evt) {
FacesContext facesContext = FacesContext.getCurrentInstance();
String redirect = // define the navigation rule that must be …
Run Code Online (Sandbox Code Playgroud) 截至目前,有没有办法for..of
在Angular 2 的指令中获取iterable的当前索引?换句话说,相当于$index
Angular.js v1 ......
代码示例:
<ul *for="#task of allTasks">
<li>{{ $index}} - {{ task.label }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
(当然这段代码不起作用,它不提供当前索引)
我正在尝试使用内部定义的属性激活maven配置文件pom.xml
:
<project>
[...]
<properties>
<run.it>true</run.it>
</properties>
[...]
<profiles>
<profile>
<activation>
<property><name>run.it</name></property>
</activation>
[...]
</profile>
</profiles>
[...]
</project>
Run Code Online (Sandbox Code Playgroud)
显然它不起作用.但是,激活可以从命令行进行:
mvn -Drun.it
Run Code Online (Sandbox Code Playgroud)
是"按设计"吗?如果是,那么可能的解决方法是什么?
我使用Hibernate Envers来审核我的实体.
我有一个经审计的实体,Foo
它有一个List<Bar>
属性.但是,我不想审核Bar
实体.因此,我写道:
@Entity
@Audited
public class Foo {
@JoinTable(name = "T_FOO_BAR", joinColumns = @JoinColumn(name = "FOO_ID"), inverseJoinColumns = @JoinColumn(name = "BAR_ID"))
@ManyToMany(cascade = PERSIST)
@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
public List<Bar> getBars() {
return bars;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想要检索以下版本Foo
:
AuditReader reader = AuditReaderFactory.get(getEntityManager());
Foo revision = (Foo) reader.createQuery().forEntitiesAtRevision(Foo.class, 42).getSingleResult();
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我想要检索所有数据时(即延迟加载时bars
),我得到错误ORA-00942: table or view does not exist
,因为它试图查询:
select ... from T_FOO_BAR_AUD x, T_BAR y where ...
Run Code Online (Sandbox Code Playgroud)
我虽然使用@Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
,Hibernate …
在玩!1,可以使用以下代码获取循环内的当前索引:
#{list items:myItems, as: 'item'}
<li>Item ${item_index} is ${item}</li>
#{/list}
Run Code Online (Sandbox Code Playgroud)
在Play2中是否有相同的功能?
@for(item <- myItems) {
<li>Item ??? is @item</li>
}
Run Code Online (Sandbox Code Playgroud)
同样的问题_isLast
和_isFirst
.
ps:这个问题非常相似,但解决方案暗示修改代码返回一个Tuple (item, index)
而不仅仅是一个列表item
.
有没有办法配置IntelliJ IDEA(版本8.0.1)存储所有配置文件的目录?
默认情况下,这些文件存储在%home%\.IntelliJIdea80 ...(或.IdeaIC12等)中,但我想定义另一个位置...
谢谢.
我有一个网页(由JSF制作),其中一些链接允许用户获取PDF文件.
当用户点击这样的链接时,会显示一个等待弹出窗口(它是一个模态面板)(因为PDF的生成可能很长),并且一旦创建了文件,IE就会显示建议的"文件下载"弹出窗口"打开","保存"和"取消"选项.
当这个弹出窗口关闭时,即当用户保存(或打开)PDF文件时,Javascript是否有办法从我的网页中知道?
为了更精确一点,在显示PDF文件链接的网页中,会显示一个模态弹出窗口("等待弹出窗口"),以使用户等待"文件下载"弹出窗口.问题是当用户保存(或打开)PDF文件时,"文件下载"弹出窗口关闭,但用户然后"返回"到原始网页,同时仍显示等待弹出窗口.
请注意,我的应用程序仅在IE6中运行,因此我不反对IE(6) - 仅解决方案...
对于需要jQuery的解决方案我也没问题;)
编辑: 如果存在一个解决方案来捕获任何在向用户显示"文件下载"弹出窗口时触发的事件(即在用户选择保存,打开或取消之前),那么对我来说也没关系!
我目前正在加强Jenkins(1.430)项目的发布过程.
当前的发布工作
今天,对于一个特定项目,我们有一个专门负责发布流程的工作.完整的程序如下:
mvn versions:set -DnewVersion=2.0
)来摆脱-SNAPSHOT
.2.1-SNAPSHOT
).这种方法的优点是我只有Jenkins作业,因为构建只依赖于标记.
但是,此过程涉及太多人为干预(pom.xml,提交,标签等的更改).
新的发布工作
现在,我使用Maven发布插件.我创建了一个工作,向启动构建的用户提出三个信息:
releaseVersion
发布插件的参数);developmentVersion
发布插件的参数);tag
发布插件的参数).这项工作正常,除了一点:作业基于中继或SVN的分支.这意味着如果我有2个分支(除了主干),我将需要创建3个发布作业:每个分支一个.
保持两个世界中最好的一个想法(即使用mvn发布,但保留1个发布作业),添加一个构建参数,该参数将询问用户中继/分支的路径.因此,我将设置并要求用户输入参数,而不是在作业配置中设置http://my-svn-repo/project/trunk
(或http://my-svn-repo/project/branches/BRANCH_V1
).http://my-svn-repo/project/$FROM_BRANCH
FROM_BRANCH
这种解决方案的问题在于,用户必须输入任一trunk
或branches/BRANCH_Vx
,这可能导致错误.
理想情况下,我希望有一个构建参数,让我可以选择分支(包括主干),因为选择标签时存在参数List Subversion标签...
所以我的问题是:有没有更好的方法来配置一个可以在所有分支上工作的Jenkins作业?
谢谢.
编辑:我发现验证字符串 Jenkins插件可以很有趣,以确保用户定义的值尊重某些正则表达式.这对我的情况很有帮助......
为了在Eclipse上运行我的单元测试,我需要为VM设置一些属性.
因此,当我第一次运行JUnit测试时,我进入"Open Run Dialog",然后在我的JUnit配置中进行此测试,我进入"Arguments"选项卡并将我需要的所有内容放在"VM arguments"文本区域中.
有没有办法在运行JUnit时自动添加一组属性,所以我只能右键单击测试类,然后单击"Run as> Junit Test"来运行测试?
技术信息:Eclipse 3.3.2,JUnit 4,Java 5
这些属性用于Spring配置文件*.因此,我不能使用Aaron给出的想法,因为Spring将在测试运行之前初始化.
除此之外,我只需要知道我是否可以在Eclipse中轻松实现这一目标.因此,解决方案不得对Eclipse外部的应用程序编译产生任何影响,因为我的应用程序最终将由Maven2编译(和测试).
*很少有"单元"测试确实需要运行我的Spring配置.好的,我知道这不是真正的单元测试; o)
编辑2:事实上,我确实是通过测试单元开始Spring配置.因此,在启动Spring之前,我检查系统属性,如果我的属性没有设置,那么我给它们所需的值...
但是,我有点失望的是Eclipse不能自动为我做这件事......
我可以使用以下命令运行整个Junit测试:
Shift+ Alt+ X,T
但我怎么能进行单一测试?使用鼠标我点击具体方法和Run As -> Junit test
有谁知道这种情况的捷径?
谢谢