First and most important, thou shalt make your Action classes be thread-safe, unless the RequestProcessor.processActionCreate method has been properly overwritten.Action's execute method returns ActionForward, but this never means the returned ActionForward should be configured from ActionMapping.When downloading, or in other cases when the response has been comitted, thou shalt return null in the execute method.Learn to use BeanUtils and ConvertUtils, which might help you a lot.Remember, the RequestProcessor.processXXX methods will be invoked again when the first Action returns a ".do" ActionForward. This behavior might cause a single ActionForm be reset and validated twice during a single user request, and thus a worse performance. It might also make two sequential Actions belong to two separate transaction, and usually the developers are not aware of it.The <html:radio> / <html:checkbox> tags are a bit different from the <html:text> ones in the value filter operation. The formers (extends BaseHandlerTag) don't call ResponseUtils.filter() to filter <input ... value="ab"c"> to <input ... value="ab"c">, while the laters (extends BaseFieldTag) do.Not related to Struts, but related to B/S application. DO NOT rely on the client-side script, as they are not so reliable and testable; Use nothing but IE (minor-version-dependent) to test your application, even the browser's core is IE.
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货