我正在尝试从JSP文件中删除硬编码名称。我需要在Config文件中提供名称并在jsp中调用,以便当用户查看页面源代码时,他不应看到名称。 如何在JSP中做到这一点。
我的代码:
if (((tech == 'google.com') && ((id == 'email') || id == 'domain'))) || ((tech == 'google') && id == 'test')))
window.location = (url.substring(0, res + 5) + ("google/") + url.substring(res + 5, url.length));
现在如何删除硬编码的值并在配置文件中提供它,并在此处调用它,这样当我查看页面源代码时就不会看到google.com名称
我的新代码尝试:
Config.properties
envs=google.com,yahho.com
name= google,yahoo
tokenurl=google/,yahoo/
sample.jsp
<%@ page import = "java.util.ResourceBundle" %>
<% ResourceBundle resource = ResourceBundle.getBundle("config");
String names=resource.getString("name");
String env=resource.getString("envs");
String turls=resource.getString("tokenurl");
%>
if (((tech == env[0]) && ((id == 'email') || id == 'domain'))) || ((tech
== 'names[0]') && id == 'test')))
window.location = (url.substring(0, res + 5) + ("turls[0]") +
url.substring(res + 5, url.length));
else if (((tech == env[1]) && ((id == 'email') || id == 'domain'))) ||
((tech == 'names[1]') && id == 'test')))
window.location = (url.substring(0, res + 5) + ("turls[1]") +
url.substring(res + 5, url.length));
但是我不确定这是编写代码的正确方法。谁能建议我遵循一种正确的标准方法,以仅在if条件的一行中达成目标?
答案 0 :(得分:1)
在扩展名为“ .properties”的程序包中创建一个属性文件,并通过在jsp中导入资源包程序包来使用jsp文件中定义的那些属性。
config.properties
name=priya
email=priya@gmail.com
phone=22222
sample.jsp
<%@ page import = "java.util.ResourceBundle" %>
<% ResourceBundle resource = ResourceBundle.getBundle("config");
String name=resource.getString("name");
String email=resource.getString("email");
String phone=resource.getString("phone");
%>
Name: <input type="text" id="name" value="<%=name %>">
Email: <input type="text" id="email" value="<%=email %>">
Phone: <input type="text" id="phone" value="<%=phone %>">
答案 1 :(得分:0)
经典的JSP。在这里,我使用%><%
,因此仍未写入任何输出,并且可以重定向到另一页。
所以:
<%@ page import = "java.util.ResourceBundle"
%><%
ResourceBundle resource = ResourceBundle.getBundle("config");
String names = resource.getString("name");
String[] env = resource.getString("envs").split(",\\s*");
String turls = resource.getString("tokenurl");
String tech = request.getParameter("tech");
if (tech != null && tech.equals("google")) {
String url = response.encodeRedirectURL(env[13]);
response.sendRedirect(url); // Just tell the browser to redirect, load the url.
return;
}
%>
不幸的是,实际的逻辑是您的事情。与JavaScript的s == 'abc'
相比,s.equals("abc")
具有function submitForm(){
// do some stuff
if ($('#form')[0].checkValidity()) {
$('#form').submit();
}
}
。
学习并使用JSP标记和EL表达语言会使代码更小。
使用servlet作为 controller 来准备数据,然后将其参数化(或重定向到某些外部URL)作为 view 转发到任何JSP,作为 view 。 em> model ,甚至会更好。