好吧,我想研究Struts所以我将从Struts 1开始,我想知道一般的流程.需要哪些文件?
什么是struts-config.xml的功能?validation.xml中?validation-rules.xml当您访问JSP页面并触发操作时,会发生什么?Action和Form类有什么作用?当一个动作被触发时,首先调用哪个类.
我刚下载了一个示例表单,所有这些文件起初都很混乱.我想知道为什么要更好地了解Struts.
我一直在使用struts 2,但由于一些原因,我正在转移(返回)Struts 1.我想知道它们之间的主要差异,比如程序可用性和一般流程.
我正在尝试使用Struts验证来检查用户输入的各个字段.如果有人能够帮助我看到我缺乏的东西,我将非常感激.这就是我所拥有的:
我把validation.xml
和TestAction-validation.xml
在WEB-INF/classes/
这是validation.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator Config 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
<validators>
<validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
<validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
. . .
</validators>
Run Code Online (Sandbox Code Playgroud)
这是TestAction-validation.xml
:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="testInt">
<field-validator type="int">
<param name="min">0</param>
<param name="max">9</param>
<message>Number not in range</message>
</field-validator>
</field>
<field name="testString">
<field-validator type="stringlength">
<param name="minLength">4</param>
<message>String not long enough.</message>
</field-validator>
</field>
</validators>
Run Code Online (Sandbox Code Playgroud)
我的struts.xml
扩展struts-default
,我有一个非常简单的动作类TestAction
,它扩展ActionSupport …
我正在尝试在Struts中创建一个登录页面.想法是验证用户是否存在等,然后如果有错误,返回登录页面,错误为红色(典型登录或任何表单页面验证).
我想知道是否有人知道Struts中的错误管理教程.我正在寻找专门的教程(或示例)
<html:errors>
Run Code Online (Sandbox Code Playgroud)
标签,我认为这将解决我的问题.
我正在开发一个应用程序,人们将所需的文件从DB中提到的位置下载到本地.我使用struts 2从服务器下载文件.我可以毫无例外地下载文件,它完美无缺.但下载的文件具有我在struts.xml中指定的文件名,我希望它是下载的确切文件名.例如,如果原始文件名是struts.pdf,我将其下载为download.pdf,如何防止它并下载具有实际文件名的文件
我的struts.xml配置如下,
<action name="download" class="action.DownloadAction">
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<param name="inputName">fileInputStream</param>
<param name="contentDisposition">attachment;filename="download.log"</param>
<param name="bufferSize">1024</param>
</result>
<result name="error">/live/useradminerror.jsp</result>
</action>
Run Code Online (Sandbox Code Playgroud)
我忘了提到使用struts2-jquery来开发UI.请帮我解决这个问题,因为我处于项目的关键阶段.
我在课堂上使用基于sturts 2的基于注解的验证,同时使动作错误消失,我得到了这个奇怪的“ FreeMarker模板错误!”。这是我的实体类。
@Entity
public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long userid;
private String userPhoneNumber;
private String userName;
private String password;
private String full_name;
private String useremail;
@OneToOne
private userType usertypeid;
public Long getUserid() {
return userid;
}
public void setUserid(Long userid) {
this.userid = userid;
}
public String getUserPhoneNumber() {
return userPhoneNumber;
}
@RequiredStringValidator(message = "Enter Phone Number",type = ValidatorType.FIELD)
public void setUserPhoneNumber(String userPhoneNumber) {
this.userPhoneNumber = …
Run Code Online (Sandbox Code Playgroud) 我有一个动作,我试图登录用户.
public class RegisteredUserAction extends ActionSupport implements SessionAware {
..
..
public String login() throws Exception {
DBLogic dBLogic = new DBLogic();
RegisteredUser user = null;
try {
user = dBLogic.getRegisteredUser(getUserUsername(), getUserPassword());
} catch (CredentialException e) {
addFieldError("userUsername", e.getMessage());
addActionError(e.getMessage());
return INPUT;
}
if (user != null) {
session.put("user", user);
return SUCCESS;
}
return ERROR;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,如果用户名或密码无效,我会抛出一个CredentialException,然后在我的fieldError中填充该例外消息.我甚至尝试添加动作错误.
通过一些建议和在线搜索,我设法使用分别存储和提取的RegisteredUserAction.action和MainAction.action中的注释使用Message Store Interceptor.
import org.apache.struts2.convention.annotation.InterceptorRef;
import org.apache.struts2.convention.annotation.InterceptorRefs;
@InterceptorRefs({
@InterceptorRef(value = "store", params = {"operationMode", "STORE"}),
@InterceptorRef("defaultStack"),})
Run Code Online (Sandbox Code Playgroud)
和
import org.apache.struts2.convention.annotation.InterceptorRefs;
@InterceptorRefs({
@InterceptorRef(value = …
Run Code Online (Sandbox Code Playgroud) struts2 ×5
java ×3
jsp ×3
struts ×2
freemarker ×1
java-ee ×1
jquery ×1
struts-1 ×1
validation ×1