我正在尝试将 Struts 1 标签迁移到 Struts 2。是否有任何备忘单可以执行此操作?(我没有看到任何用于迁移标签的信息。)需要知道 struts2 中的等效标签
尤其:
<html:base/> in struts1 equals to <s:head/> in struts2?
html:html
html:base
html:link forward
html:link page
html:html
html:form action
html:hidden
html:submit>
Run Code Online (Sandbox Code Playgroud) 我正在使用Struts和Java.问题是我有一个包含一些结果的页面.用户可以单击某个项目并进行编辑.我想在编辑用户后能够返回结果.返回没有被打破,但如果他提交表格进行更新,他将不得不点击2次,我认为可能有问题.
我试过header("Referer")但这在Internet Explorer中不起作用.
我正在尝试实施一个解决方案.有任何想法吗?我的想法是保存网址并移动该网址的ID.当我想返回时,从ID获取URL.将其存储在会话中不是解决方案,因为用户可能已打开多个窗口.
我正在处理一个使用struts 1.2的旧应用程序.出于某种原因,我们使用纯html表单提交struts动作.例如:
对于testAction.do的内容输出,我尝试提交给自己.
第1项第2项然后我将表单bean TestForm与testAction相关联.
我不确定如何在表单中指定属性,以便在用户单击"提交"后从myitem1获取值
我试图添加getMyitem1(),setMyitem1(字符串[]项),getSelectedMyitem1(),setSelectedMyitem1(字符串[]项)
只有在加载页面时才会调用这些set方法.
我想我对struts 1.x中的ActionForm的理解一定是错的.
请指教,谢谢.
我在Struts 1.3应用程序中有一个Ajax调用,但是我无法将它返回到浏览器中.XML的内容正在被正确发回,但浏览器仍然将响应类型重新标识为text/html.
我的动作类看起来像这样:
public ActionForward newContractCAUAjax(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)throws Exception {
String target="forwardToCAUXML";
DynaActionForm dynaActionForm = (DynaActionForm) actionForm;
httpServletResponse.setContentType("text/xml");
httpServletResponse.setHeader("Content-type","application/xhtml+xml");
...
return actionMapping.findForward(target);
}
Run Code Online (Sandbox Code Playgroud)
我目前正在做的只是抓取浏览器设置的XML字符串并使用jQuery的parseXML()方法来获取有效的XML,但这看起来像是一个黑客,我宁愿让struts将响应发送回作为有效的XML响应.
我正在关注Struts 2教程 - 使用Struts 2标签
到目前为止,所有内容都按预期工作,直到我将以下内容添加到index.jsp:
<s:url action="hello" var="helloLink">
<s:param name="userName">Bruce Phillips</s:param>
</s:url>
<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
Run Code Online (Sandbox Code Playgroud)
预期的结果是锚链接(Hello Bruce Phillips)应该用hello.action的相应URL替换参数userName encoded,但不会发生替换,这就是元素呈现的方式:
<p>
<a href="${helloLink}">Hello Bruce Phillips</a>
</p>
Run Code Online (Sandbox Code Playgroud)
我的语法有什么问题吗?
环境:
我有一个方法' getAllIDs(),用于获取数据库中特定表的ID。我的项目中有许多方法使用它。
public static int[] getAllIDs (String TableName, String WhereClause, String trxName)
{
ArrayList<Integer> list = new ArrayList<Integer>();
StringBuffer sql = new StringBuffer("SELECT ");
sql.append(TableName).append("_ID FROM ").append(TableName);
if (WhereClause != null && WhereClause.length() > 0)
sql.append(" WHERE ").append(WhereClause);
PreparedStatement pstmt = null;
ResultSet rs = null;
try
{
pstmt = DB.prepareStatement(sql.toString(), trxName);
rs = pstmt.executeQuery();
while (rs.next())
list.add(new Integer(rs.getInt(1)));
}
}
Run Code Online (Sandbox Code Playgroud)
其中子句是查询的条件部分。由于有此条款,因此有机会进行sql注入。因此,我需要修改此方法以使用准备好的语句参数设置来设置参数。我面临的问题是因为' getAllIDs()'不知道每个子句有多少个参数。
每个子句的参数都不同,可以是任意数字。对于某些类,参数将为3,对于某些类,参数将为2,依此类推,具有不同的数据类型。因此,我该如何使用setstring(),setint()等。用我发布的代码向我解释。
我面对这个问题.我有一个过滤器,根据过滤器的配置设置请求的字符编码(例如,UTF-8).这适用于使用struts html:form标签编码的表单.但是,如果我使用普通的HTML表单标记,则数据编码不正确.
这是web.xml中的过滤器定义:
<filter>
<filter-name>Encoding Filter</filter-name>
<filter-class>EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
这是过滤器:
public class EncodingFilter implements javax.servlet.Filter {
private String encoding;
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
}
public void destroy() {
}
Run Code Online (Sandbox Code Playgroud)
}
我正在构建一个Web应用程序,我需要检查会话是否存在。我想在一个jsp页面中进行检查。我已经在动作类(Struts 2框架)中创建了会话。我不想使用脚本脚本。有什么方法可以使用EL或其他方式做到这一点?
这就是我要在不使用script-let的情况下在jsp中实现的
<% HttpSession hs=request.getSession(false);
if(hs.isNew())
{
}
%>
Run Code Online (Sandbox Code Playgroud)
这是检查会话的正确方法,还是我应该在单独的操作类中进行相同的操作,然后将成功映射到jsp!
我的任务是在我之前工作的项目中添加一些新功能.自从我上次工作以来,它已经被赋予了一些新功能,并且开发环境已经发生了变化.我有很多麻烦使我的环境与所有依赖项和外部文件夹保持同步.
解决了许多问题后,在Eclipse中运行Tomcat 7 Server时,我遇到了一条消息:
Error: Could not find or load main class Path\To\Workspace\.metadata\plugins\cont
Run Code Online (Sandbox Code Playgroud)
我尝试删除Tomcat服务器,然后使用相同的设置重新创建它,以及.metadata从工作区中删除我的文件夹.现在我甚至无法让Tomcat配置正确:
Error: Could not find or load main class Files\ApacheSoftwareFoundation\apache-tomcat-7.0.26.
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?它之前我添加了几个需要的子目录,但我现在很难过.
我需要一个理论上的澄清...... Javascript表单提交和包含提交按钮的表单有什么区别?(我正在使用框架Struts,但我认为它不会影响行为)
我的意思是,这是我的例子,提交表单与输入类型="提交"之间的区别是什么:
<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
<input type="hidden" name="myfield" value="">
<table border="0" class="filterclass" width="530px">
<tr>
<td class="filterheader" align="center">
<input type="submit" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
</td>
</tr>
</table>
</html:form>
function doMySubmit() {
var myform = document.getElementById('searchFilterForm');
myform.myfield.value = "Hello World";
}
Run Code Online (Sandbox Code Playgroud)
<html:form action="search.do?method=mySearch" method="post" styleId="searchFilterForm">
<table border="0" class="filterclass" width="530px">
<tr>
<td class="filterheader" align="center">
<input type="button" onclick="doMySubmit()" name="MyList" value="SEND" class="button actionbutton" />
</td>
</tr>
</table>
</html:form>
function doMySubmit() {
var myform = document.getElementById('searchFilterForm');
myform.myfield.value = "Hello World";
myform.submit();
} …Run Code Online (Sandbox Code Playgroud)