我找到了一个简单的grails auth示例,其中在控制器中使用beforeInterceptor,如果用户未登录,则将用户重定向.它看起来像这样:
def beforeInterceptor = [action:this.&checkUser,except:['login']]
def checkUser() {
if(!session.user) {
redirect(controller:'home')
return false
}
}
Run Code Online (Sandbox Code Playgroud)
如果您只有一个必须保护的控制器,这一切都很好.当你有一个以上的时候会发生什么?我不能将该checkUser方法放入服务中,因为服务无法重定向,并且可能没有该session对象.请帮忙
我试图在春季连接一个messageSource以用于我的应用程序。它不起作用,给出此错误:
org.springframework.context.NoSuchMessageException:在代码“ validation_required”下找不到区域“ en”的消息。
我的applicationContext.xml包含messageSource的以下定义:
<bean id="messageSource"
class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basenames">
<list>
<value>classpath:messages</value>
</list>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我的邮件属性文件位于:
/WEB-INF/classes/messages/messages_en_US.properties
Run Code Online (Sandbox Code Playgroud)
最后,我拨打的产生错误的电话是:
String message = messageSource.getMessage("validation_required", null, Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)
这个小时有人可以帮我吗?
我将我的用户会话存储为<aop:scoped-proxy/>代理.我将如何在jsp上访问它?
我假设豆存储在会话的某个地方,如果我错了,请纠正我.
我希望能够在我的消息包密钥中包含空格,因为如果您不必将空格转换为下划线,则更容易将现有文本转换为键.
春天的消息来源似乎并不喜欢这样.可能吗?
2011-03-30 15:45:56,519 ERROR [org.springframework.web.servlet.tags.MessageTag] - No message found under code 'Invalid username or password' for locale 'en_US'.
javax.servlet.jsp.JspTagException: No message found under code 'Invalid username or password' for locale 'en_US'.
at org.springframework.web.servlet.tags.MessageTag.doStartTagInternal(MessageTag.java:183)
Run Code Online (Sandbox Code Playgroud) 我正在使用无处不在的jquery validate插件进行表单验证.它支持使用元数据插件将验证规则添加到表单元素.
我正在使用此功能.当validate查找这些规则时,它会对元素进行调用:
$(element).metadata()[meta]
Run Code Online (Sandbox Code Playgroud)
where meta存储这些规则的前缀.例如
<input data-validate="{maxLength: 12}" name='foo'/>
Run Code Online (Sandbox Code Playgroud)
meta的值将设置为"validate"以获取这些属性.但这里有一个重大问题!
以下是元数据插件将数据属性解析为json的功能:
var getObject = function(data) {
if(typeof data != "string") return data;
data = eval("(" + data + ")"); //oh no!!!!!
return data;
}
if ( settings.type == "html5" ) {
var object = {};
$( elem.attributes ).each(function() {
var name = this.nodeName;
if(name.match(/^data-/)) name = name.replace(/^data-/, '');
else return true;
object[name] = getObject(this.nodeValue);
});
}
Run Code Online (Sandbox Code Playgroud)
所以最终发生的事情是元数据解析所有data-*属性并尝试评估内容!只要包含不包含json的数据属性,就会中断这些内容.
现在的问题是:
看起来元数据和验证都是"经过验证的"插件.这是使用人们刚刚使用的元数据插件的已知副作用吗?
我通常不喜欢修改插件代码来满足我的项目需求,但这似乎应该是:
我必须建立一个人工填充的选择,但我很喜欢这个,我遇到了json解析的一些困难...
我的代码是
cb="";
$('#datepicker').blur(function() {
cb='<option value="0"></option>';
if ($('#datepicker').val() != "") {
$.getJSON("json.php?t=cb&id=" + $("#datepicker").val(), function(data){
*some magic*
*for each pair of element in json*
cb+='<option value="'+data.id+'">'+data.description+'<option/>';
});
}
$('#select').html(cb);
});
Run Code Online (Sandbox Code Playgroud)
可悲的是没有魔术:(
我必须解析的json就像
[{"id":5423,"description":"sometext1"},
{"id":4132,"description":"sometext2"}
{"id":5534,"description":"sometext3"}
...
]
Run Code Online (Sandbox Code Playgroud)
但我不知道怎么做......你能帮助我吗?
抱歉我的英语不好:D
如何创建在所有不提供静态文件的 URL 上运行的中间件?
我正在考虑检查是否req.url不以“/js/”、“/css/”或“/images/”开头,但必须有更好的方法
我有一个带有一堆字段的简单表单.每个都是必需的,每个都有不同的名称:
提交表单时,我检查每个字段是否为空,并为上下文添加唯一的消息,如:
我不能简单地在jsp上使用required = true属性,因为消息将是通用的,而这不是我们需要的.
我对jsf相当新,所以请告诉我一个更好的方法吗?
在spring xml中连接bean列表的最佳方法是什么,问题是必须在xml文件中定义每个bean的数据(这是因为在这个sprint中它们将来自xml,来自db的下一个sprint,所以它不是值得为创作投入太多时间).
这就是我所拥有的,但必须有一个更好的方法:
<bean id="annouce1" class="com.company.domain.Announcement">
<property name="body" value="bodyasfsdf"/>
<property name="title" value="title"/>
<property name="linkText" value=">>"/>
<property name="linkUrl" value="http://google.com"/>
</bean>
<bean id="annouce2" class="com.company.domain.Announcement">
<property name="body" value="bodyasfsdf"/>
<property name="title" value="title"/>
<property name="linkText" value=">>"/>
<property name="linkUrl" value="http://google.com"/>
</bean>
<bean id="annouce3" class="com.company.domain.Announcement">
<property name="body" value="bodyasfsdf"/>
<property name="title" value="title"/>
<property name="linkText" value=">>"/>
<property name="linkUrl" value="http://google.com"/>
</bean>
<bean id="annouce4" class="com.company.domain.Announcement">
<property name="body" value="bodyasfsdf"/>
<property name="title" value="title"/>
<property name="linkText" value=">>"/>
<property name="linkUrl" value="http://google.com"/>
</bean>
<util:list id="homepageAnnoucements" scope="singleton">
<ref bean="annouce1"/>
<ref bean="annouce2"/>
<ref bean="annouce3"/>
<ref bean="annouce4"/>
</util:list>
Run Code Online (Sandbox Code Playgroud) 我有一个非常复杂的多维数组.
每个项目都像(此代码显示推送到数组的var):
var arrayItem = {
'itemId': '00001',
'itemName': 'Biscuits',
'parentId': 'Food',
'children': []
};
Run Code Online (Sandbox Code Playgroud)
itemId始终是唯一的.children数组中填充了更多arrayItem(s).因此,数组可以具有多个级别(可能最多9个,但可能更多) - 因此基础数组具有x个对象,并且每个对象可以具有y个子对象,依此类推......
有没有办法搜索特定的itemId.我尝试了各种各样的.each方法,但我似乎无法搜索多维数组的所有级别.
任何帮助深表感谢.