我有一个使用struts:iterator标记显示的表。表值包含在中ArrayList。我在列表的每一行上都有一个编辑按钮。当用户单击编辑按钮时,该行的内容应发送到操作和相应的结果页面。我不允许使用复选框和单选按钮。
param我是否可以使用某些标签将该行设置为参数并将其返回到结果页面。还是有办法在会话中设置该行并将其从会话中取回?如何在Struts2中实现这一目标?
public class EulerProblem14 {
int chainLength=1;
public int findChainLength(int number){
System.out.println("number "+number);
System.out.println("Chainlength "+chainLength);
if(number==1){
System.out.println("the number is finally 1 return chain length");
return chainLength;
}
if(number%2==0){
chainLength++;
return findChainLength(number/2);
}
else {
chainLength++;
findChainLength(number*3+1);
}
System.out.println("THIS SHOULD NOT BE EXECUTED");
return -1;
}
public static void main(String args[]){
System.out.println(new EulerProblem14().findChainLength(13));
}
Run Code Online (Sandbox Code Playgroud)
在解决Project Euler Problem 14时,我遇到了一个奇怪的问题,在java中我从未遇到过的方法返回.在上述方法中,当数字最终为1时,它应返回链的计数.但这是输入13的输出.
13号链长1
40号链长2
20号链长3
10号链长4
5号链长5
16号链长6
8号链长7
4号链长8
2号链长9
1号链长10
数字最终是1个返回链长
这不应该被执行
这不应该被执行
-1
问题出现在最后一部分,当数字变为1而不是返回chainlength = 10时,它会以某种方式跳过它并执行永远不应执行的代码并返回-1.对于像1,2,4,8这样的2的所有权力,它运行良好,但对其他人来说则失败.
这对我来说可能是一个愚蠢的错误.尽管如此,对我来说这是一个问题.