我想了解在JSF2.0中附加标记"?faces-redirect=true"的action属性背后的语义是什么<h:commandlink>.无论是使用它还是使用它,应用程序确实导航到操作中指定的目标页面.所以乍一看,似乎唯一的效果就是整容,即向用户提供反馈(如果他正在查看浏览器的访问过的URL),他已经移动到新页面.但如果它是如此无害且无副作用,我无法理解为什么它不是默认行为.我怀疑它与JSF2.0的基于post的机制有关.我通过对网址人们看到他的浏览器(当一个JSF应用程序在浏览时已经注意到?faces-redirect=true不使用)是'前’,'页面的次数.’
元NB.我在防火墙后面并且受到"SO需要来自另一个域的外部JavaScript"问题的困扰,所以我为没有格式化而道歉.当我可以从其他域访问时,我还会在几个小时内提供有关您的答案的反馈.
这是我在PostgreSQL中遇到的问题的简化版本.
我有下表A:
[ID INTEGER | VALUE NUMERIC(10,2) | 家长 整数 ]
其中'PARENT'是列引用ID的自引用FK.
表定义是:
CREATE TABLE A(ID INTEGER IDENTITY, VALUE NUMERIC(10,2), PARENT INTEGER)
ALTER TABLE A ADD CONSTRAINT FK FOREIGN KEY (PARENT) REFERENCES A(ID)
Run Code Online (Sandbox Code Playgroud)
这个简单的表允许定义任意深度的树数据结构.现在我需要编写一个SQL(我不想使用服务器端PL-SQL)来报告每个节点,子树的总值"悬挂"在它下面.例如,使用下表:
| ID | VALUE | PARENT |
-------------------------
| 1 | NULL | NULL |
| 2 | 3.50 | 1 |
| 3 | NULL | NULL |
| 4 | NULL | 3 |
| 5 | 1.50 | 4 |
| …Run Code Online (Sandbox Code Playgroud) 我在OCaml中有许多"库"模块(主要是实用程序和辅助函数),我在最后添加了以下类型的代码以进行简单的单元测试:
let main () = ...
main
Run Code Online (Sandbox Code Playgroud)
要么
let () = ...
Run Code Online (Sandbox Code Playgroud)
这是主要打印到控制台的代码(用于简单的测试目的).现在的问题是,当我将"库"模块与我的"主"模块链接并执行程序时,我得到了所有这些令人分心的测试消息.有没有办法在OCaml模块中包含代码,该模块在单独链接模块时执行(从而促进琐碎的测试),但在用作"库"时却没有?我已经读过SO中的帖子,表示OCaml没有"主"模块的概念,并且所有模块都是相同的,但在我看来,给链接器的目标文件的顺序可以解释为表明最后一个模块是"主要"模块(因为它位于"依赖食物链"的顶部).
出于某些原因,我想将我的应用程序部署为两个单独的工件:Users-ejb.jar和Users-war.war,未打包在同一个耳中(但仍然部署在同一个 JBoss AS 7.1实例中).在Users-war.war中,我有一个支持bean(注释为JSF托管bean),我希望在其中注入打包在Users-ejb.jar中的EJB3 .当Users-ejb.jar和Users-war.war单独部署时,当所有内容都打包在单个耳朵中时,简单的@EJB注入不再有效.
我的设置的简化示例如下:
EJB3 bean
import javax.ejb.*;
(...)
@Stateless(name="userFacade")
@Local(IUserFacadeLocal.class)
@Remote(IUserFacadeRemote.class)
public class UserFacade extends AbstractFacade<User> implements IUserFacadeLocal, IUserFacadeRemote {
Run Code Online (Sandbox Code Playgroud)
支持豆
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.ejb.EJB;
import entities.User;
import facades.IUserFacadeRemote;
import facades.IUserFacadeLocal;
@ManagedBean(name="indexBackingBean")
@SessionScoped
public class IndexBackingBean implements Serializable {
@EJB(beanName="userFacade")
private IUserFacadeLocal userFacade;
Run Code Online (Sandbox Code Playgroud)
我尝试了各种组合,比如在支持bean中声明EJB3 bean的类型为IUserFacadeRemote(而不是IUserFacadeLocal),但是当部署Users-war.war模块时,它们都会失败并出现相同的异常:
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException:
JBAS014543: No EJB found with interface …Run Code Online (Sandbox Code Playgroud) Java中的以下代码片段:
"\\\\".replaceAll("\\\\", "\\");
Run Code Online (Sandbox Code Playgroud)
抛出异常:
java.lang.StringIndexOutOfBoundsException: String index out of range: 1 (NO_SOURCE_FILE:0)
Run Code Online (Sandbox Code Playgroud)
replaceAll上的javadoc确实包含了对反斜杠使用的警告,并建议使用Matcher.replaceAll或Matcher.quoteReplacement.有没有人有关于如何用一个反斜杠替换字符串中所有出现的两个反斜杠的片段?
上面显示的实际文字只是一个例子,实际的字符串可以在不同的地方出现两次连续的反斜杠.
假设我需要在Clojure中创建以下目录结构:
a
\--b
| \--b1
| \--b2
\--c
\-c1
Run Code Online (Sandbox Code Playgroud)
而不是做如下的程序性事情:
(def a (File. "a"))
(.mkdir a)
(def b (File. a "b"))
(.mkdir b)
;; ...
Run Code Online (Sandbox Code Playgroud)
...是否有一种聪明的方式以某种方式将上述操作表示为数据,以声明方式,然后一举创建层次结构?
我知道Clojure列表和向量大多是可以互换的,并且使用一个或另一个与插入顺序conj或者在向量的情况下不需要引用之类的东西有关.
那为什么呢
(into {} '( (1 2) (3 4)))
Run Code Online (Sandbox Code Playgroud)
失败,而
(into {} '( [1 2] [3 4]))
Run Code Online (Sandbox Code Playgroud)
成功?
Clojure在take-while-and-n-more下面实现的惯用方法是什么:
=> (take-while-and-n-more #(<= % 3) 1 (range 10))
(0 1 2 3 4)
Run Code Online (Sandbox Code Playgroud)
我的尝试是:
(defn take-while-and-n-more [pred n coll]
(let
[take-while-result (take-while pred coll)
n0 (count take-while-result)]
(concat
take-while-result
(into [] (take n (drop n0 coll))))))
Run Code Online (Sandbox Code Playgroud) 更新:我最终设法在最小的设置中重现这个,我作为一个单独的问题发布.
从同一个PostgreSQL实例和表并行运行的两个不同应用程序进行JDBC插入时,我遇到了以下异常:
org.postgresql.util.PSQLException: ERROR: could not serialize access due to read/write dependencies among transactions
[java] ERROR> Detail: Reason code: Canceled on identification as a pivot, during write.
[java] ERROR> Hint: The transaction might succeed if retried.
Run Code Online (Sandbox Code Playgroud)
尝试执行以下语句时发生异常:
public int logRepositoryOperationStart(String repoIvoid, MetadataPrefix prefix, RepositoryOperation operation, int pid, String command, String from_XMLGregCal) throws SQLException {
Connection conn = null;
PreparedStatement ps = null;
try {
conn = getConnection();
conn.commit();
String SQL = "INSERT INTO vo_business.repositoryoperation(ivoid, metadataprefix, operation, i, …Run Code Online (Sandbox Code Playgroud) 这是我注意到的奇怪之处.下面的代码不应该像WeakSet使用的那样将内存浪费掉,显然没有其他引用留在下面:
'use strict';
require('babel-polyfill');
const s = new WeakSet();
for (let i = 0 ; ; i++) {
s.add({});
if (i % 100000 === 0)
console.log(`${i} :${process.memoryUsage().heapUsed}`);
}
Run Code Online (Sandbox Code Playgroud)
(SCCE github repo here).
然而,打破它所做的记忆(Node v4.3.2与Babel转换):
<--- Last few GCs --->
165 ms: Scavenge 13.6 (48.0) -> 13.6 (48.0) MB, 14.4 / 0 ms [allocation failure].
189 ms: Scavenge 14.4 (48.0) -> 14.4 (52.0) MB, 17.6 / 0 ms [allocation failure].
340 ms: Scavenge 37.5 …Run Code Online (Sandbox Code Playgroud) clojure ×3
jsf ×2
postgresql ×2
babeljs ×1
ecmascript-6 ×1
ejb-3.0 ×1
java ×1
javascript ×1
jdbc ×1
navigation ×1
node.js ×1
ocaml ×1
post ×1
redirect ×1
replace ×1
sql ×1
str-replace ×1
string ×1