在CodeIgniter视图中检查当前URI段的最佳方法是什么?我想要做的是使用当前的URI段[即$ this-> uri-> segment(1)],以突出显示导航栏上的当前页面.
我想到的最好的就是去做
$data['current_uri'] = $this->uri->segment(1);
$this->load->view('header', $data);
Run Code Online (Sandbox Code Playgroud)
在我的每个控制器中,然后在header.php文件中,我检查$ current_uri变量以确定应该突出显示导航的哪个部分.如你所知,这是一种非常繁琐的方式,但我却失去了一种更好的方法.
甚至可以扩展默认的Controller类来传递当前的URI段,但我不确定这是否可行,甚至不知道如何去做.
我遇到了以下教程JSP技巧,使模板更容易?使用JSP创建页面模板(我如何错过这么久?!?).但是,在做了一些搜索之后,我似乎无法弄清楚如何(或者是否可能)检查是否已经设置了JSP片段.
这是我正在尝试做的一个例子:
我有一个名为的模板default.tag.它有2个JSP属性,定义如下:
<%@attribute name="title" fragment="true" required="true" %>
<%@attribute name="heading" fragment="true" %>
Run Code Online (Sandbox Code Playgroud)
然后在页面的代码中,我将页面的<title>元素设置为<jsp:invoke fragment="title" />.然后在页面后面,我有以下内容:
<c:choose>
<c:when test="${true}">
<jsp:invoke fragment="heading" />
</c:when>
<c:otherwise>
<jsp:invoke fragment="title" />
</c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)
我有的地方<c:when test="${true}">,我希望能够检查heading片段是否已经设置以显示它,但如果没有,则默认为title片段.
我在抓住如何做到这一点时遇到了一些麻烦.我已尽最大努力搜索谷歌而没有任何运气.
我将从一些代码开始,并解释我正在尝试做的事情:
class Action(models.Model):
title = models.CharField(max_length=200)
owner = models.ForeignKey(User, related_name='actions')
created_by = models.ForeignKey(User, related_name='+', editable=False)
modified_by = models.ForeignKey(User, related_name='+', editable=False)
class ActionForm(ModelForm):
class Meta:
model = Action
Run Code Online (Sandbox Code Playgroud)
默认情况下,所有者有一个下拉字段.我有一个图标,允许用户在文本字段中输入新的用户名,而不是所有者.我检查是否owner_new已提交,如果是,则创建该用户.然后我需要将该owner字段设置为该值,这样form.is_valid()才会成立.
def action_create(request):
if request.method == 'POST':
form = ActionForm(request.POST)
# check if new user should be created
if 'owner_new' in request.POST:
# check if user already exists
user = User.objects.get(username=request.POST.get('owner_new'))
if not user:
user = User.objects.create_user(request.POST.get('owner_new'))
# HERE IS WHERE I'M STUMPED
form.owner …Run Code Online (Sandbox Code Playgroud) 最近我一直在使用git-p4遇到问题.
我目前的工作流程是:
git checkout -b some_feature
# do some work and commit to some_feature branch
git checkout master
git merge --no-ff some_feature
git p4 rebase
git p4 submit
Run Code Online (Sandbox Code Playgroud)
并非总是如此,但偶尔执行时git p4 submit,更改实际上并不适用,而是我看到:
error: some_file.extension: patch does not apply
Run Code Online (Sandbox Code Playgroud)
做了一些研究,我尝试在主机上进行硬重置并在没有--no-ff标志的情况下再次合并,但这似乎没有帮助.
任何想法都非常感谢.
我无法使用BASIC身份验证来使用Glassfish.我正在开发一个应用程序,我需要提示输入用户名和密码.当我尝试访问应用程序时,我已经让应用程序提示我输入密码,但在输入正确的登录信息后,我得到了HTTP Status 403 - Access to the requested resource has been denied.
我已进入Glassfish管理控制台并在file领域中创建了一些示例用户并启用了安全管理器.
接下来,在我的web.xml文件中,我添加了以下内容:
<security-constraint>
<web-resource-collection>
<web-resource-name>Secure Application</web-resource-name>
<url-pattern>/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>User</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>file</realm-name>
</login-config>
<security-role>
<role-name>User</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)
我不确定接下来要做什么.我找了好几个小时都没有运气.验证有效,因为如果我输入错误的登录信息,它会再次提示,但在成功验证后,我会收到上面显示的拒绝访问消息.
如果它有帮助,我运行Glassfish Open Source 3.0.1并使用Netbeans 6.9进行开发.
我正在使用JSF设置一个表单(我对此很新),我Validation Error: Value is not valid在其中一个字段上收到消息.这个字段实际上是一个单独的对象(我将在下面显示),它有一个自定义转换器.
这是我所拥有的(删除了不相关的代码):
我有一Citation节课:
@ManagedBean(name="citation")
public class Citation {
private int id;
private Status status;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我也有一个Status你在Citation课堂上引用的课程:
@ManagedBean(name="status")
public class Status {
private int id;
private String name;
// getters and setters
public List<Status> getAllStatuses() {
Session session = HibernateUtil.getCurrentSession();
session.beginTransaction();
session.clear();
Query query = session.createQuery("from Status");
List<Status> statuses = query.list();
try {
session.getTransaction().commit();
} catch (HibernateException e) {
// TODO: handle exception
session.getTransaction().rollback(); …Run Code Online (Sandbox Code Playgroud) 我在ExtJS中获取ComboBox以显示下拉项目时遇到问题.我最初使用XmlStore动态加载数据,但为了确保这不是问题,我采用了一个现有的ComboBox,它使用一个简单的ArrayStore(目前在我的应用程序的其他地方工作),看看它是否可行,仍然没有运气.
当使用Chrome的开发人员工具时,当我点击ComboBox元素时,我得到ext-all-debug.js:41166 - Uncaught TypeError: Cannot call method 'getStyle' of undefined并且没有显示任何下拉列表.
这是我的代码:
EventForm = Ext.extend(Ext.form.FormPanel, {
constructor: function(config) {
config = Ext.apply({
items: [
{
layout: 'column',
xtype: 'container',
items: [
{
layout: 'form',
xtype: 'container',
columnWidth: 0.5,
items: [
{
fieldLabel: 'My Combo Box'
name: 'mycombobox',
xtype: 'combo',
store: new Ext.data.ArrayStore({
fields: ['size'],
data: [
['50'],
['100'],
['150'],
['200']
]
}),
displayField: 'size',
valueField: 'size',
forceSelection: true,
editable: false,
triggerAction: 'all',
mode: 'local',
listWidth: 60,
width: 60 …Run Code Online (Sandbox Code Playgroud) 有没有办法在不使用的情况下执行以下操作eval()?
以下函数接受字符串数组,其中字符串是对象名称.我迭代它们以确保它们都不是未定义的.我希望能够在不使用的情况下做到这一点eval()
function hasMissingDependencies(dependencies) {
var missingDependencies = [];
for (var i = 0; i < dependencies.length; i++) {
if (eval('typeof ' + dependencies[i]) === 'undefined') {
missingDependencies.push(dependencies[i]);
}
}
if (missingDependencies.length > 0) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
有了这个,我就可以传递类似下面的内容并得到我想要的东西:
alert(hasMissingDependencies(['App.FooObject', 'App.BarObject']));
Run Code Online (Sandbox Code Playgroud)
我宁愿不使用eval()但是没有找到另一种方法来检查对象名称作为字符串传递时是否未定义对象.
我试图查询和过滤一对多的关系,似乎无法弄清楚如何做到这一点.
这是我的映射(为简洁而修剪):
class Bug(Base):
__tablename__ = 'bug'
id = Column('bug_id', Integer, primary_key=True)
tags = relationship('Tag', backref='bug')
class Tag(Base):
id = Column('tag_id', Integer, primary_key=True)
name = Column('tag_name', String)
bug_id = Column('bug_id', ForeignKey('bug.bug_id'))
Run Code Online (Sandbox Code Playgroud)
我希望能够找到所有没有名称为"foo"的标记的错误.
javascript ×2
codeigniter ×1
django ×1
django-forms ×1
extjs ×1
git ×1
git-p4 ×1
glassfish ×1
java ×1
jsf ×1
jsp ×1
perforce ×1
php ×1
python ×1
security ×1
sqlalchemy ×1