我正在做一个基本的Java课程,我遇到了一个问题:如果我已经将有效参数传递给构造函数,我该如何创建一个对象?
在实现验证后,我应该创建一个替代类并从那里调用构造函数吗?
或者我应该/可以在类中使用静态方法进行验证吗?
在这种情况下,最佳做法是什么?
我正在使用Java,Spring MVC和Hibernate在复合视图模板之上构建我当前的网站.以下是它的工作原理:
浏览器要求页面.
内部结果视图类拦截请求,获取其值并重定向到模板jsp,该模板jsp将页眉和页脚与所请求的页面合并.
然后它返回模板jsp,就像它是被询问的页面一样.
问题是,我有在读的主网页的一些信息的麻烦,因为,例如,从BindingResult对象验证错误(见这个我有关的细节问题所作回答的问题).
我认为请求流是这样的(如果错误,请纠正我):
用户请求页面> InternalResourceView拦截并重定向到Template.jsp>显示合并的jsp.
我认为合并页面中的模型不存在于合并的jsp中.
现在我担心,当从数据库中收集的数据显示列表和动态表单时,我可能会遇到麻烦.我的烦恼是错的吗?如果没有,我该怎么做才能解决诸如BindingResult错误之类的问题?
有关参考,请使用以下有关BindingResult错误和CompositeView类的链接:
import java.util.Map;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.InternalResourceView;
public class CompositeView extends InternalResourceView {
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
HttpServletResponse response) throws Exception {
String dispatcherPath = prepareForRendering(request, response);
String[] parts = dispatcherPath.split("/");
String endpath;
if (parts[parts.length - 2].endsWith("views")) {
endpath = parts[parts.length - 1];
} else {
endpath = parts[parts.length - 2] +"/"+ parts[parts.length - 1];
}
request.setAttribute("partial", endpath);
RequestDispatcher …Run Code Online (Sandbox Code Playgroud) 尽管您失去了打字安全性,但使用原始Object类数组能够拥有多类型数组是不是很糟糕?
代码要理解:
public class testobject {
public static void main (String[] args){
Object[] obj = new Object[5];
obj[0] = "Cat";
obj[1] = 7;
obj[2] = new Object();
for(int i = 0; i < obj.length; i++){
System.out.println(obj[i]);
}
}
}
Run Code Online (Sandbox Code Playgroud)