值= “LT;%的request.getParameter%>” 中不起作用

时间:2014-01-22 11:00:49

标签: java jsp servlets

对不起我的英语。 我在我的jsp命名操作中有一个参数我得到它并把它放在另一个名为all action的参数中,因为我在我的servlet中需要它

<input type="hidden" name="action" value="<%request.getParameter("action"); %>" />
<input type="submit" value="Suivre" />

所以当我打印时:<%out.println(request.getParameter("action")); %>。我得到了值,但在servlet中结果是这样的:String action =“”;

String action = request.getParameter("action");
问题在哪里?感谢

编辑:,因为@arjuncc和@Neuron说我将其更改为value=<%=request.getParameter("action")%>,它有效,但我在String操作结束时添加了/,我将使用subString并且工作,感谢每个人,特别是@arjuncc和@Neuron

5 个答案:

答案 0 :(得分:2)

我强烈建议您使用Expression Language,使用scriptlet有很多问题like

  • 可重用性:您无法重用scriptlet。
  • 可替换性:您不能将scriptlet抽象化。
  • OO-ability:你不能使用继承/组合。
  • 可调试性:如果scriptlet中途抛出异常,你得到的只是一个空白页面。
  • 可测试性:scriptlet不是可单元测试的。
  • 可维护性:每个saldo需要更多时间来维护混杂/混乱/重复的代码逻辑。

您的代码存在的问题是,您使用了scriplet  代码中的<% %>,它假定能够在jsp中插入java代码。要在页面中打印某些内容,您必须使用JSP expression tag <%= %>

<input type='hidden' name='action' value='<%=request.getParameter("action") %>' />
<input type="submit" value="Suivre" />

答案 1 :(得分:1)

一般应避免使用划线。使用JSP EL:

<input type="hidden" name="action" value="${action}" />

答案 2 :(得分:0)

初看

更改以下

"<%request.getParameter("action"); %>"

到(没有引用)

<%request.getParameter("action"); %>

答案 3 :(得分:0)

您可以在%之后使用JSP表达式<%= .... %>注意=(不推荐的方式)

<input type="hidden" name="action" value="<%=request.getParameter("action"); %>" />

不要在JSP中编写scriptlet ,因为scriptlet不应该在JSP中使用超过十年。学习JSP ELJSTL,并使用servlet获取Java代码。 How to avoid Java Code in JSP-Files?

<input type="hidden" name="action" value="{param.action}" />

答案 4 :(得分:0)

您最好使用&lt;%= request.getParameter(“action”)%&gt; 而不是 的&LT;%的request.getParameter( “动作”)%&GT;