小编at.*_*at.的帖子

JSP/servlet从属性文件中读取参数?

我的JSP页面需要根据它们所处的环境(开发,生产,沙箱等)显示不同的信息.我希望每个环境都有一个属性文件,其中包含它们可能需要的所有参数.如何在JSP页面中引用此文件的属性?

我的想法是:

  • 让servlet以模型对象的形式将属性提供给所有JSP页面,以便我可以像$ {properties.propertyName}一样引用它们.
  • 以某种方式在web.xml中引用此属性文件,然后我可能调用类似$ {context.properties.propertyName}的东西?
  • 而不是属性文件,列出web.xml中的参数并引用JSP页面中的参数.不知道怎么做,但我更喜欢一个更简单的属性文件.

更新 - 我应该提到我使用的是Spring 3.0和Spring webmvc.所以,如果有一些最好的实践方法,使用Spring做到这一点,这是理想的!

spring jsp servlets jsp-tags spring-mvc

7
推荐指数
1
解决办法
2万
查看次数

GWO(谷歌网站优化工具)的替代品?

我们现在正在使用GWO(Google网站优化工具).多变量和A/B测试正是我们所需要的,并且从显示用户变化的角度来看效果很好.但是,我们有几个问题让我想要使用不同的工具:

  • 与Google Analytics相比,统计信息不准确,因此我们现在忽略它们并且必须手动检查
  • 预览通常不起作用
  • 不能在变体中拥有动态内容(我知道vary_content,但我无法让它工作,谷歌的论坛中的任何人都无法帮助..我怀疑谷歌可能已经停止支持这个)
  • 文档很差,有一个技术指南,众所周知的不准确性,一年多来都没有修复.
  • 我们修改多变量测试部分的html/javascript代码很难看,使我们的页面无法通过标准验证
  • 每页只有8个测试部分,问题在于我们希望我们的市场营销人员能够在GWO中完成他们需要的所有工作,但现在他们需要在我们的自定义工具中标记他们想要/不想要的测试部分
  • 每次测试都有不同的实验关键,这也使得市场营销人员有时需要使用我们的代码

是否有像GWO这样的好工具可以与Google Analytics(我喜欢)一起使用?

更新:我们选择了Optimizely并且一直很高兴.但是,它可能很难处理,因为它对你来说有点太多了.您可以直接从他们的UI编辑您的网页,但这当然并不容易,甚至可能.特别是当涉及Javascript时.我们的UI经常在这个过程中搞砸了.我喜欢GWO的方法,因为开发人员将代码分开,营销人员可以用开发人员允许的变量填写这些部分.对我来说这是理想的,除了GWO,当然,实际上并不起作用.

Optimizely的竞争对手名为Visual Website Optimizer.看起来也很漂亮,但我上面描述了同样的问题.

是否有GWO有效?

javascript google-analytics google-website-optimizer multivariate-testing optimizely

7
推荐指数
1
解决办法
3406
查看次数

Actionscript的ExternalInterface.addCallback只在本地工作,而不是在生产中

在我的Flex应用程序中,我需要一个Javascript控件来调用我的一个Actionscript方法.很简单,根据Flex/Actionscript文档,我在我的Actionscript代码中写了这个:

if (ExternalInterface.available)
    ExternalInterface.addCallback("setName", setNameInActiveWindow);
Run Code Online (Sandbox Code Playgroud)

在Javascript控件中我写道:

document.getElementById('FlexAppId').setName(name);
Run Code Online (Sandbox Code Playgroud)

效果很好.完全符合预期,所以我去了生产.但它在生产中不起作用:(.相同的代码......我无法弄清楚.上面的Javascript代码是运行的,但是回调没有在Actionscript代码中执行.

这与域名安全有关吗?在本地,我使用local.mydomain.com:8080,其中local.mydomain.com解析为127.0.0.1(我需要这样做,以便一些小部件正常工作).Flex应用程序来自同一个本地Web服务器.然而,在生产中,它只是www.mydomain.com(mydomain.com不是真正的域名),Flex应用程序来自flash.mydomain.com(CDN).

我在www.mydomain.com上有一个crossdomain.xml文件:

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
        <site-control permitted-cross-domain-policies="master-only"/>
        <allow-access-from domain="*.mydomain.com"/>
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)

更新:我尝试更改本地环境,以便从flash.mydomain.com引用Flex应用程序,就像在生产中一样.事实证明我在本地也遇到了同样的问题...所以看起来这是某种域安全问题,尽管我上面有crossdomain.xml文件.我是否需要在crossdomain.xml中更改某些内容?我还需要一些额外的ExternalInterface.addCallback工作吗?

更新2:得到它的工作!我不得不这样做既Security.allowDomain("*")Security.allowInsecureDomain("*").将其设置为flash.mydomain.com没有解决问题,我不得不放一个通配符.allowNetworking没有效果.我需要allowScriptAccess="always",但我从那以后就有这个.ExternalInterface.call只需使用该参数即可轻松调用Javascript.但是添加回调ExternalInterface.addCallback需要使用带有通配符的上述安全方法.

apache-flex flash actionscript-3 flex4

7
推荐指数
1
解决办法
4796
查看次数

当外键存在时,MySQL 5.5外键约束失败

刚刚在mac os x 10.6上安装了MySQL 5.5,并且在许多表上都有一个奇怪的问题.以下是一个例子.插入行失败时带有外键约束,但不应该.它引用的外键确实存在.有任何想法吗?

mysql> show create table Language;
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table    | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Language | CREATE TABLE `Language` (
  `Id` int(11) NOT NULL AUTO_INCREMENT,
  `Code` varchar(2) NOT NULL,
  `Name` varchar(63) CHARACTER SET utf8 DEFAULT NULL,
  `Variant` varchar(63) CHARACTER SET utf8 DEFAULT NULL,
  `Country_Id` int(11) DEFAULT NULL,
  PRIMARY KEY (`Id`),
  UNIQUE KEY `Code` (`Code`,`Country_Id`,`Variant`),
  KEY `FKA3ACF7789C1796EB` (`Country_Id`),
  CONSTRAINT `FKA3ACF7789C1796EB` FOREIGN KEY (`Country_Id`) REFERENCES `Country` (`Id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 |
+----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in …
Run Code Online (Sandbox Code Playgroud)

mysql database foreign-keys mysql5 foreign-key-relationship

7
推荐指数
1
解决办法
8857
查看次数

使用jQuery更改数组参数名称的AJAX帖子

我正在使用jQuery做一个简单的AJAX帖子,效果很好:

var parameters = {firstName: 'John', lastName: 'Smith'};
$.post('http://api.example.com/rest', parameters, function(data) {
  alert('Response: ' + data.someResult);
});
Run Code Online (Sandbox Code Playgroud)

但是,当我向参数添加数组时,如下所示:

var parameters = {firstName: 'John', lastName: 'Smith', children: ['Susy', 'Billy']};
Run Code Online (Sandbox Code Playgroud)

然后问题是在POST到服务器时参数名称children被更改为children[](它实际上是URL编码children%5B%5D).我无法更改服务器以查找名称参数,children[]所以我该怎么办?如何使用名称发布多个值children?为什么jQuery会更改我的参数名称?

parameters ajax jquery post

7
推荐指数
1
解决办法
2462
查看次数

使用Java自动重新加载已更改的文件

我有很多配置文件可以修改我的应用程序的行为方式.我希望能够进行更改,并在保存文件时立即反映在应用程序中.有没有Java库来帮助解决这个问题?

我可以简单地保存一个带有时间戳的文件列表,并在时间戳发生变化时不断检查后台线程.似乎并不太难,但也许有更有效的方法来做到这一点?某些属性更改后的自定义触发器会很好.

我使用的是Spring 3.1,是否有内置的机制或解决方案可以很好地与Spring配合使用?

更新:显然JDK7现在通过其 Watch Service API包含此功能:"大多数文件系统实现都具有对文件更改通知的本机支持.Watch Service API利用此支持(如果可用).但是,当文件系统不支持此机制时,Watch Service将轮询文件系统,等待事件." 所以这是我迁移到JDK7的动力.

java file-io spring java-ee java-ee-6

7
推荐指数
1
解决办法
6270
查看次数

创建如果ActiveRecord中不存在函数?

我正在使用Rails 3.2.8.如果状态记录尚不存在,我需要创建状态记录.如果存在状态记录,我什么都不做.所以我的代码是这样的:

user_level_status = UserLevelStatus.where(user_id: user_id, level_id: level_id).first
if !user_level_status
  UserLevelStatus.create(user_id: user_id, level_id: level_id, status: UserLevelStatus::READY)
end
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来处理Rails/ActiveRecord?有没有相同的机制find_or_create_by_?我可以使用find_or_create_by_user_id并检查level_id吗?我只是放弃了结果,所以即便这样也不那么优雅.

sql activerecord ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

7
推荐指数
3
解决办法
6638
查看次数

分隔URL中的值,而不是&

URL中的每个参数都可以有多个值.我该如何分开它们?这是一个例子:

http://www.example.com/search?queries=cars,phones
Run Code Online (Sandbox Code Playgroud)

所以我想搜索两种不同的东西:汽车和手机(这只是一个人为的例子).问题是分隔符,一个逗号.用户可以在搜索表单中输入逗号作为查询的一部分,然后这会搞砸.我可以有2个单独的URL参数:

http://www.example.com/login?name1=harry&name2=bob
Run Code Online (Sandbox Code Playgroud)

那里没有真正的问题,事实上我认为这就是设计URL来处理这种情况的方法.但我不能在我的特殊情况下使用它.需要一个单独的长帖来说明原因......我需要简单地分离值.

我的问题基本上是,是否有一个URL可编码的字符或值,不能以表格(textarea或输入)输入,我可以用作分隔符?像空字符?还是一个不可见的角色?

更新:谢谢大家的快速回复.我也应该列出相同的参数名称示例,但在我的情况下,顺序也很重要,因此也不是一个选项.我们通过使用%00 URL编码字符(UTF-8\u0000)作为值分隔符来解决此问题.

html parameters url parsing urlencode

6
推荐指数
1
解决办法
3万
查看次数

在Rails控制台中轻松抑制SQL输出的方法?

我经常需要使用Rails控制台rails c.然后我运行一些循环遍历模型记录的语句.我需要输出信息,但所有的SQL代码都会被遍布.喜欢:

Students.all.each {|s| puts s.inspect unless s.attendance};nil
Run Code Online (Sandbox Code Playgroud)

我把它nil放在最后,所以我不会得到所有学生的丑陋.这是输出:

  Student Load (4.3ms)  SELECT "students".* FROM "students"
  Attendance Load (3.6ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2694 LIMIT 1
  Attendance Load (2.7ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2695 LIMIT 1
  Attendance Load (4.9ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2689 LIMIT 1
#<Student id: 3, attendance_id: 2689, teacher_id: 6, began_at: "2013-05-21 19:16:37", finished_at: "2013-05-21 20:34:33", created_at: "2013-05-21 19:16:37", updated_at: "2013-05-21 20:34:33">
  Attendance Load …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails irb rails-console ruby-on-rails-3 ruby-on-rails-4

6
推荐指数
1
解决办法
3058
查看次数

如何在JavaScript字符串中插入变量?

在JavaScript中的字符串中插入变量的最佳方法是什么?我猜它不是这个:

var coordinates = "x: " + x + ", y: " + y;
Run Code Online (Sandbox Code Playgroud)

在Java中,Strings是不可变的,并且执行类似上面的操作会不必要地创建并抛弃Strings.Ruby是类似的,有一个很好的方法来做到这一点:

coordinates = "x: #{x}, y: #{y}"
Run Code Online (Sandbox Code Playgroud)

JavaScript存在类似的东西吗?

javascript string

6
推荐指数
1
解决办法
3万
查看次数