问候,这是问题所在.我有一个名为entList.jsp的页面,它与集合一起使用:
<c:forEach var = "pack" items = "${packingList}">
<!--Here goes something with outputting the pack instance in a required format-->
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
一切都很好,参数packingList作为请求的属性被调用此页面的动作处理程序传递.实际上,packingList的类型为Collection <GenericBean>.
事实证明,这个页面(它存储的片段)实际上非常有用,并且可以在许多具有不同集合的地方使用.所以我试着像这样包含这个页面(在另一个页面中):
<jsp:include page="entList.jsp">
<!-- Pass the required collection as a parameter-->
<jsp:param name = "packingList" value = "${traffic.packingList}"/>
</jsp:include>
Run Code Online (Sandbox Code Playgroud)
但是,现在这个片段没有看到参数packingList.我试着像这样重写片段(因为现在它是一个参数):
<c:forEach var = "pack" items = "${param.packingList}">
<!--Here goes something with outputting the pack instance in a required format-->
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
但现在它会生成异常,因为它将packingList视为字符串而不是集合.所以现在解决方案是这样的 - 在动作处理程序代码中将所需的集合设置为属性:
// This …Run Code Online (Sandbox Code Playgroud) 我有一个问题.我们在两个项目中使用log4j,这两个项目托管在同一个GlassFish服务器上.每个项目都有log4j.properties文件,该文件指向基于不同目录的文件(让我们将它们命名为Project1和Project2).
现在,由于一些不明原因,有时第一个项目的信息消息被写入Project2日志文件,反之亦然.我检查了两个项目的log4j.properties文件,没有任何内容指向其他项目的日志.
怀疑是log4j实际上并不是线程安全的,因此如果两个用户同时在两个系统中工作,则记录器的消息可能会混合在一起.这种猜疑是否正确?
我有一个问题,这对我来说很有意义.假设我有这样一个类定义:
public class A extends DumbAction{
public class B {
// Inner class definition
public String getName() {return "Class B";}
}
@Override
public void execute(HttpServletRequest request) {
ArrayList<B> list = new ArrayList<B>();
list.add(new B());
// Here I add some more elements
request.setAttribute("list", list);
}
}
Run Code Online (Sandbox Code Playgroud)
似乎编译器不禁止这样的代码.因此,我向HttpServletRequest实例传递了一个内部类实例列表.但是,然后我尝试在JSP中访问他们的公共方法,我抱怨这样的读取方法(例如,getName)不存在的事实.虽然物体本身似乎存在.
这是什么意思?内部类甚至不能隐含地传递给外界?或者他们的生命会立即结束,因为外部类实例会停止存在?或者除了外部类之外,没有人可以访问内部类的公共方法.
Upd:这是jsp页面的片段,它使用内部类的实例列表:
<c:forEach var = "element" items = "${list}">
<c:out value = "${element.name}"/><br/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
似乎forEach工作正常,但是根据JSTL out不能访问内部类的公共方法getName().
在我们的系统中,我们有一个抽象类,我们称之为BasicAction,它包含几个抽象方法.其中最重要的是执行.它处理来自JSP页面的请求.主处理程序的工作方式如下:
// Sample 1:
String actionName;// The name of action to use
Map<String, BasicAction> mapping;//The mapping of names and actual handlers
BasicAction action = mapping.get(actionName);
try {
action.execute(request);//Handle the http request from the JSP page
} catch (Exception ex) {
// Handle here any exceptions
}
Run Code Online (Sandbox Code Playgroud)
现在,一切看起来都很好,但基本上所有派生的处理程序都实现了相同的代码:
// Sample 1:
public class ConcreteAction extends BasicAction {
@Override
public void execute(HttpServletRequest request) {
// The managers provide the middle layer between
// web presentation and database
TrafficManager …Run Code Online (Sandbox Code Playgroud) 我有一个问题.假设我有一堆托管形成层次结构的存储库,例如:A - > B - > C(意思是A是中央存储库,其余的都是它的后代).
现在假设我使用C的克隆.假设我想要不仅从C获得更改,而且从中央存储库获取更改,因此我执行以下命令:
hg pull [Address of A]
hg up
Run Code Online (Sandbox Code Playgroud)
这似乎是完全合法的,但是发生了什么然后我提交我的更改并将它们推送到C?不仅会推送我的本地修改,还会修改中央存储库(如果有的话).如果有人试图将变化从A拉到C,会发生什么?是否会发生冲突或者它会成功合并更改A - > local - > C并更改A - > C. Mercurial会将其识别为相同的变更集吗?
如果我确定我的代码足够稳定并且可以放在中央存储库中,则会发生相同的情况:
hg commit -u spirit -m "A local modification that is stable"
hg push [Address of A]
Run Code Online (Sandbox Code Playgroud)
如果我从A拉到C然后再从C拉到我的本地仓库会发生什么,它会识别这些变更集来自我的本地仓库,还是会报告冲突并建议合并?
那个案子中最好的做法是什么?仅执行后续的拉动和推动(即A < - > B,B < - > C,C < - >本地)?但问题是我只能访问我的本地存储库,它是C的克隆.如果我想要在我的本地机器上,如何从B到C的拉?Mercurial如何处理
我现在卡在一些非常奇怪的类中,这些类逻辑混乱了.以下是为数据库生成查询的代码示例:
if(realTraffic.getPvkp() != null) {
//Admission point
if(BeanUtils.isGuidEntity(realTraffic.getPvkp())) {
findParameters +=
" and (" + staticTableName() + ".guidPvkp = '" + realTraffic.getPvkp().getGuid()
+ "' or (" + staticTableName() + ".guidPvkpOut = '" + realTraffic.getPvkp().getGuid()
+ "' and " + staticTableName() + ".requestType = " + RequestBean.TRANSIT_TYPE
+ ")";
if (companyType == CompanyBean.PP_TYPE && !realTraffic.isSkipOther()) {
// TODO - add non-formed
findParameters += " or (" + staticTableName() + ".guidPvkpOut is null "
+ " and " + staticTableName() + ".requestType …Run Code Online (Sandbox Code Playgroud) 我想知道,如果给出一个空集合,Joiner.join究竟会如何表现:
Joiner.on(",").join(new ArrayList());
Run Code Online (Sandbox Code Playgroud)
我想知道,这里的预期行为是什么.它会返回一个空字符串还是null?或者它取决于库的平台和实现?
我有一个问题.我们目前正在尝试为我们的开发选择合适的结构.我们要努力实现的目标如下:
问题是如何在单个服务器上托管所有这些存储库.我想要的东西:
通过这种方式,我可以在Hudson中为每个存储库创建脚本,这样一个开发人员的工作就不会以任何方式影响另一个,EAR的测试也不会重叠,因为每个开发人员都会生成并部署自己的EAR.
UPD.感谢大家的回答.现在我们使用以下结构.
我目前正试图在其中一个在线编程竞赛中解决问题.该比赛的限制为64兆字节.
我用Java编写了一个程序,它在类声明中有一段字段,其工作方式如下:
private int[] sizes = new int[1024]; // 4096 bytes
private boolean[][] compat = new boolean[1024][1024]; // 128 kb
private boolean[][] compat2 = new boolean[1024][1024]; // 128 kb
private long[][][] dp = new long[29000][51][2]; // About 3*8 = 24 megabytes
private int [][] masks = new int[29000][2]; // About 240 kb
private int avail = 0;
private int avail2 = 0;
private int[] positions = new int[500000]; // About 2 megabytes
private int[][] ranges = new int[29000][2]; // About …Run Code Online (Sandbox Code Playgroud) 据我所知,包含长序列操作的方法被认为是一件坏事,需要重新设计.更重要的是,我听到一种观点认为该方法不应该大于屏幕(即所有方法代码应该立即在IDE屏幕中可见,而不需要滚动).
关于这个有什么一般规则吗?例如,"如果方法超过15行,则应该重构"?如果是这样,你如何重构它?只是使用提取方法的方式?