Spring MVC 3.1 RedirectAttributes无效

我正在尝试在Spring MVC 3.1-Release中实现RedirectAttributesfunction 我正在发送简单的表单到Post URL,并希望看到我在重定向中发送的值: 我的控制器看起来像这样: @Controller public class DefaultController { @RequestMapping(value=”/index.html”, method=RequestMethod.GET) public ModelAndView indexView(){ ModelAndView mv = new ModelAndView(“index”); return mv; } @RequestMapping(value=”/greetings.action”, method=RequestMethod.POST) public ModelAndView startTask(@RequestParam(“firstName”) String firstName,RedirectAttributes redirectAttributes){ redirectAttributes.addFlashAttribute(“redirectAttributes.firstName”, firstName); ModelAndView mv = new ModelAndView(new RedirectView(“success.html”)); return mv; } @RequestMapping(value=”/success.html”, method=RequestMethod.GET) public ModelAndView successView(){ ModelAndView mv = new ModelAndView(“success”); return mv; […]

在Java方法性能中使用final关键字?

方法参数中的use final是否允许编译器或运行时环境更快地工作? 例如,如果您有一个变量要传递给您知道不会被修改并按原样使用的方法,那么将它声明为final是否更有效? 示例:第一种方法应该比第二种方法更快 public int isLargerAfterTripledFaster(int num, final int limit) { num *= 3; return (num > limit); } public int isLargerAfterTripled(int num, int limit) { num *= 3; return (num > limit); } 如果我可以肯定我永远不想在这里传递一个可修改的变量,我应该采用这种方法吗?

Java:从控制台读取,直到得到一个空行

我写了这个方法,永无止境。 它不打印我传递的内容,为什么? import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; class Main { public void readFromConsole() { ArrayList wholeInput= new ArrayList (); InputStreamReader isr = new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); try { String line = null; while (!(line = br.readLine()).equals(” “)){ wholeInput.add(line); } } catch(IOException e){ e.printStackTrace(); } for (int i =0; i<wholeInput.size();i++){ System.out.println(wholeInput.get(i)); } […]

Repaint()不会清除帧

public class Graphics2DTest extends JPanel implements ActionListener{ private Timer time = new Timer(5,(ActionListener) this); int x = 0,y = 0; public void paintComponent(Graphics g){ Graphics2D gui = (Graphics2D) g; Rectangle2D rectangle = new Rectangle2D.Double(x,y,100,150); gui.setPaint(Color.GREEN); gui.fill(rectangle); time.start(); } public void actionPerformed(ActionEvent arg0) { x++; y++; repaint(); } } 问题是repaint()应该清除框架并在该位置绘制矩形,但先前绘制的矩形仍然存在。 那么,怎么做呢? 请解释一下你的答案。

在使用Protocol Buffers的项目中使用Proguard有什么特点?

我有一个使用Google Protocol Buffers的项目。 一旦我尝试使用ProGuard对其进行模糊处理,似乎protobuf会导致问题。 我将自己的所有类打包到mybuildedclasses.jar 。 Google代码打包到protbuf.jar mybuildedclasses.jar protobuf.jar other external jars 之后我试图混淆mybuildedclasses.jar 。 配置文件与此类似。 最终所有的jar子都装在另一个胖jar子里面。 我运行程序,一旦尝试发送消息,就会打印出这种exception。 Caused by: java.lang.RuntimeException: Generated message class “org.mypackage.messages.Control$MessageControlHandCard$Builder” missing method “getCardId”. at com.google.protobuf.GeneratedMessage.getMethodOrDie(GeneratedMessage. java:1366) at com.google.protobuf.GeneratedMessage.access$1(GeneratedMessage.java:1 361) at com.google.protobuf.GeneratedMessage$FieldAccessorTable$SingularField Accessor.(GeneratedMessage.java:1502) at com.google.protobuf.GeneratedMessage$FieldAccessorTable.(Genera tedMessage.java:1441) at org.mypackage.Control$1.assignDescriptors(SourceFile:32 20) at com.google.protobuf.Descriptors$FileDescriptor.internalBuildGenerated FileFrom(Descriptors.java:300) at org.evogame.common.messages.Control.(SourceFile:3278) … 60 more Caused by: java.lang.NoSuchMethodException: org.evogame.common.messages.Control$ MessageControlHandCard$Builder.getCardId() […]

扩展密钥库证书的有效时间

有没有办法延长密钥库或证书的时间有效性? 我已经创建了一个有效期为10年的密钥库。 但是,由于谷歌市场的限制,我需要30年的有效期。

等待递归的Thread-Producer

我有一个收集者,在游戏中搜索动作。 我在一个递归搜索中搜索,以从游戏中获得所有可能的移动。 出于性能原因,我使用了一个Threadpool,并且每个找到的移动都会向池中添加一个新的Thread,以延长旧的移动。 这是一些代码: protected static List threads; private static ExecutorService threadPool; protected final synchronized void hookThread(Runnable thread) { if (threadPool == null) { threadPool = Executors.newFixedThreadPool(15); threads = new ArrayList(); } threadPool.execute(thread); threads.add(thread); } protected abstract class GathererRunnable implements Runnable { @Override public final void run() { onRun(); threads.remove(this); } public abstract void onRun(); […]

从Iterable整数中获取排序数组的最快方法

可能重复: 形成和排序一组正整数的最快策略 从未排序的整数迭代中获取排序数组的最快方法是什么? 目前,我每次迭代迭代n次(其中n是列表的大小),每次从迭代中获得最高值并将其放入数组中。 但是我想要清理它并让一些好的库为我做这件事。 可能我不介意为此目的使用像番石榴等任何流行的库。

是否有一种简单的方法可以在不使用额外库的情况下解析Java中的JSON?

我是JavaScript和JSON的新手。 我正在编写一个需要将JSON解析为Java对象的Java servlet,但诀窍是我不能使用外部库,如json-simple或gson。 所以我已经将JavaScript文件的内容保存在名为“contents”的字符串中…… contents = “myVar = ” + contents + “;”; BufferedWriter bWriter = new BufferedWriter(new OutputStreamWriter(response.getOutputStream(), “UTF-8”)); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName(“JavaScript”); Object returnVal = engine.eval(contents); NativeObject a = (sun.org.mozilla.javascript.internal.NativeObject) engine.get(“myVar”); Object[] ids = a.getAllIds(); for (Object id : ids) { String newId = (String) id; bWriter.write(“\n” + […]

Servlet:处理许多可选参数

只是想知道是否有一种更优雅或标准的方式来处理可选参数,或者你是否必须检查每一个是否为空。 我有10多个可选参数,所以它有点难看。 理想情况下,我想要像bash命令: getopts 。 public class MapImageServlet extends HttpServlet { … constructor and other methods … protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // OPTIONAL PARAMETERS if(request.getParameter(“boarderSize”) != null){ double boarderSize = Double.valueOf(request.getParameter(“boarderSize”); } if(request.getParameter(“boarderThickness”) != null){ double boarderThickness = Double.valueOf(request.getParameter(“boarderThickness”); } if(request.getParameter(“boarderColor”) != null){ double boarderColor = Double.valueOf(request.getParameter(“boarderColor”); } … […]